diff --git a/src/LiveDevelopment/Agents/ConsoleAgent.js b/src/LiveDevelopment/Agents/ConsoleAgent.js index 5cef3d90e7b..c8a810f4032 100644 --- a/src/LiveDevelopment/Agents/ConsoleAgent.js +++ b/src/LiveDevelopment/Agents/ConsoleAgent.js @@ -74,11 +74,22 @@ define(function ConsoleAgent(require, exports, module) { /** Initialize the agent */ function load() { - Inspector.Console.enable(); + var deferred = $.Deferred(); + + Inspector.Console.enable(function (response) { + if (response.error) { + deferred.reject(null, response.error); + } else { + deferred.resolve(); + } + }); + $(Inspector.Console) .on("messageAdded.ConsoleAgent", _onMessageAdded) .on("messageRepeatCountUpdated.ConsoleAgent", _onMessageRepeatCountUpdated) .on("messagesCleared.ConsoleAgent", _onMessagesCleared); + + return deferred.promise(); } /** Clean up */ diff --git a/src/LiveDevelopment/Agents/DOMAgent.js b/src/LiveDevelopment/Agents/DOMAgent.js index f34e030f48a..2fe868bfadf 100644 --- a/src/LiveDevelopment/Agents/DOMAgent.js +++ b/src/LiveDevelopment/Agents/DOMAgent.js @@ -302,6 +302,8 @@ define(function DOMAgent(require, exports, module) { /** Initialize the agent */ function load() { + var deferred = $.Deferred(); + _load = new $.Deferred(); $(Inspector.Page) .on("frameNavigated.DOMAgent", _onFrameNavigated) @@ -312,8 +314,14 @@ define(function DOMAgent(require, exports, module) { .on("childNodeCountUpdated.DOMAgent", _onChildNodeCountUpdated) .on("childNodeInserted.DOMAgent", _onChildNodeInserted) .on("childNodeRemoved.DOMAgent", _onChildNodeRemoved); - Inspector.Page.enable(); - return _load.promise(); + Inspector.Page.enable(function (response) { + if (response.error) { + deferred.reject(null, response.error); + } else { + deferred.resolve(); + } + }); + return $.when(_load.promise(), deferred.promise()); } /** Clean up */ diff --git a/src/LiveDevelopment/Agents/NetworkAgent.js b/src/LiveDevelopment/Agents/NetworkAgent.js index aaafe461004..a077d8eb50d 100644 --- a/src/LiveDevelopment/Agents/NetworkAgent.js +++ b/src/LiveDevelopment/Agents/NetworkAgent.js @@ -63,9 +63,19 @@ define(function NetworkAgent(require, exports, module) { /** Initialize the agent */ function load() { + var deferred = $.Deferred(); + _urlRequested = {}; - Inspector.Network.enable(); + Inspector.Network.enable(function (response) { + if (response.error) { + deferred.reject(null, response.error); + } else { + deferred.resolve(); + } + }); $(Inspector.Network).on("requestWillBeSent.NetworkAgent", _onRequestWillBeSent); + + return deferred.promise(); } /** Unload the agent */ diff --git a/src/LiveDevelopment/Agents/RemoteAgent.js b/src/LiveDevelopment/Agents/RemoteAgent.js index fb03c24beff..844a83a0bbd 100644 --- a/src/LiveDevelopment/Agents/RemoteAgent.js +++ b/src/LiveDevelopment/Agents/RemoteAgent.js @@ -47,17 +47,17 @@ define(function RemoteAgent(require, exports, module) { // WebInspector Event: Page.loadEventFired function _onLoadEventFired(event, res) { // res = {timestamp} - var request = new XMLHttpRequest(); - request.open("GET", "LiveDevelopment/Agents/RemoteFunctions.js"); - request.onload = function onLoad() { - var run = "window._LD=" + request.response + "(" + LiveDevelopment.config.experimental + ")"; - Inspector.Runtime.evaluate(run, function onEvaluate(res) { - console.assert(!res.wasThrown, res.result.description); - _objectId = res.result.objectId; + var body = require("text!LiveDevelopment/Agents/RemoteFunctions.js"), + command = "window._LD=" + body + "(" + LiveDevelopment.config.experimental + ")"; + + Inspector.Runtime.evaluate(command, function onEvaluate(response) { + if (response.error || response.wasThrown) { + _load.reject(null, response.error); + } else { + _objectId = response.result.objectId; _load.resolve(); - }); - }; - request.send(null); + } + }); } // WebInspector Event: DOM.attributeModified diff --git a/src/LiveDevelopment/Agents/RemoteFunctions.js b/src/LiveDevelopment/Agents/RemoteFunctions.js index 813c6f43cdb..e6958f5781c 100644 --- a/src/LiveDevelopment/Agents/RemoteFunctions.js +++ b/src/LiveDevelopment/Agents/RemoteFunctions.js @@ -21,9 +21,7 @@ * */ - -/*jslint vars: true, plusplus: true, devel: true, nomen: true, indent: 4, forin: true, maxerr: 50, regexp: true */ -/*global define, $, window, document, navigator */ +/*jslint vars: true, plusplus: true, browser: true, nomen: true, indent: 4, forin: true, maxerr: 50, regexp: true */ /** * RemoteFunctions define the functions to be executed in the browser. This diff --git a/src/LiveDevelopment/Agents/ScriptAgent.js b/src/LiveDevelopment/Agents/ScriptAgent.js index fa723785a0c..132edac15a9 100644 --- a/src/LiveDevelopment/Agents/ScriptAgent.js +++ b/src/LiveDevelopment/Agents/ScriptAgent.js @@ -119,18 +119,33 @@ define(function ScriptAgent(require, exports, module) { /** Initialize the agent */ function load() { + var enableDeferred = $.Deferred(), + pauseDeferred = $.Deferred(); + _urlToScript = {}; _idToScript = {}; _load = new $.Deferred(); - Inspector.Debugger.enable(); - Inspector.Debugger.setPauseOnExceptions("uncaught"); + Inspector.Debugger.enable(function (response) { + if (response.error) { + enableDeferred.reject(null, response.error); + } else { + enableDeferred.resolve(); + } + }); + Inspector.Debugger.setPauseOnExceptions("uncaught", function (response) { + if (response.error) { + pauseDeferred.reject(null, response.error); + } else { + pauseDeferred.resolve(); + } + }); $(DOMAgent).on("getDocument.ScriptAgent", _onGetDocument); $(Inspector.Debugger) .on("scriptParsed.ScriptAgent", _onScriptParsed) .on("scriptFailedToParse.ScriptAgent", _onScriptFailedToParse) .on("paused.ScriptAgent", _onPaused); $(Inspector.DOM).on("childNodeInserted.ScriptAgent", _onChildNodeInserted); - return _load; + return $.when(_load.promise(), enableDeferred.promise(), pauseDeferred.promise()); } /** Clean up */