mirror of
https://github.com/roytam1/palemoon26.git
synced 2026-05-27 03:59:35 +00:00
c2e084c761
bug654550, bug533840, bug884654, bug692829, bug855504, bug884750, bug877320, bug879520, bug731311, bug861478, bug886375, bug835885, bug882416, bug648949, bug885281, bug885030, bug887165, bug887167, bug885183, bug875244
395 lines
11 KiB
JavaScript
395 lines
11 KiB
JavaScript
/* -*- Mode: js2; js2-basic-offset: 2; indent-tabs-mode: nil; -*- */
|
|
/* vim: set ts=2 et sw=2 tw=80: */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
"use strict";
|
|
|
|
const Cc = Components.classes;
|
|
const Ci = Components.interfaces;
|
|
const Cu = Components.utils;
|
|
|
|
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
|
|
|
XPCOMUtils.defineLazyModuleGetter(this, "LongStringClient",
|
|
"resource://gre/modules/devtools/dbg-client.jsm");
|
|
|
|
this.EXPORTED_SYMBOLS = ["WebConsoleClient"];
|
|
|
|
/**
|
|
* A WebConsoleClient is used as a front end for the WebConsoleActor that is
|
|
* created on the server, hiding implementation details.
|
|
*
|
|
* @param object aDebuggerClient
|
|
* The DebuggerClient instance we live for.
|
|
* @param string aActor
|
|
* The WebConsoleActor ID.
|
|
*/
|
|
this.WebConsoleClient = function WebConsoleClient(aDebuggerClient, aActor)
|
|
{
|
|
this._actor = aActor;
|
|
this._client = aDebuggerClient;
|
|
this._longStrings = {};
|
|
}
|
|
|
|
WebConsoleClient.prototype = {
|
|
_longStrings: null,
|
|
|
|
/**
|
|
* Retrieve the cached messages from the server.
|
|
*
|
|
* @see this.CACHED_MESSAGES
|
|
* @param array aTypes
|
|
* The array of message types you want from the server. See
|
|
* this.CACHED_MESSAGES for known types.
|
|
* @param function aOnResponse
|
|
* The function invoked when the response is received.
|
|
*/
|
|
getCachedMessages: function WCC_getCachedMessages(aTypes, aOnResponse)
|
|
{
|
|
let packet = {
|
|
to: this._actor,
|
|
type: "getCachedMessages",
|
|
messageTypes: aTypes,
|
|
};
|
|
this._client.request(packet, aOnResponse);
|
|
},
|
|
|
|
/**
|
|
* Inspect the properties of an object.
|
|
*
|
|
* @param string aActor
|
|
* The WebConsoleObjectActor ID to send the request to.
|
|
* @param function aOnResponse
|
|
* The function invoked when the response is received.
|
|
*/
|
|
inspectObjectProperties:
|
|
function WCC_inspectObjectProperties(aActor, aOnResponse)
|
|
{
|
|
let packet = {
|
|
to: aActor,
|
|
type: "inspectProperties",
|
|
};
|
|
this._client.request(packet, aOnResponse);
|
|
},
|
|
|
|
/**
|
|
* Evaluate a JavaScript expression.
|
|
*
|
|
* @param string aString
|
|
* The code you want to evaluate.
|
|
* @param function aOnResponse
|
|
* The function invoked when the response is received.
|
|
* @param object [aOptions={}]
|
|
* Options for evaluation:
|
|
*
|
|
* - bindObjectActor: an ObjectActor ID. The OA holds a reference to
|
|
* a Debugger.Object that wraps a content object. This option allows
|
|
* you to bind |_self| to the D.O of the given OA, during string
|
|
* evaluation.
|
|
*
|
|
* See: Debugger.Object.evalInGlobalWithBindings() for information
|
|
* about bindings.
|
|
*
|
|
* Use case: the variable view needs to update objects and it does so
|
|
* by knowing the ObjectActor it inspects and binding |_self| to the
|
|
* D.O of the OA. As such, variable view sends strings like these for
|
|
* eval:
|
|
* _self["prop"] = value;
|
|
*
|
|
* - frameActor: a FrameActor ID. The FA holds a reference to
|
|
* a Debugger.Frame. This option allows you to evaluate the string in
|
|
* the frame of the given FA.
|
|
*/
|
|
evaluateJS: function WCC_evaluateJS(aString, aOnResponse, aOptions = {})
|
|
{
|
|
let packet = {
|
|
to: this._actor,
|
|
type: "evaluateJS",
|
|
text: aString,
|
|
bindObjectActor: aOptions.bindObjectActor,
|
|
frameActor: aOptions.frameActor,
|
|
};
|
|
this._client.request(packet, aOnResponse);
|
|
},
|
|
|
|
/**
|
|
* Autocomplete a JavaScript expression.
|
|
*
|
|
* @param string aString
|
|
* The code you want to autocomplete.
|
|
* @param number aCursor
|
|
* Cursor location inside the string. Index starts from 0.
|
|
* @param function aOnResponse
|
|
* The function invoked when the response is received.
|
|
*/
|
|
autocomplete: function WCC_autocomplete(aString, aCursor, aOnResponse)
|
|
{
|
|
let packet = {
|
|
to: this._actor,
|
|
type: "autocomplete",
|
|
text: aString,
|
|
cursor: aCursor,
|
|
};
|
|
this._client.request(packet, aOnResponse);
|
|
},
|
|
|
|
/**
|
|
* Clear the cache of messages (page errors and console API calls).
|
|
*/
|
|
clearMessagesCache: function WCC_clearMessagesCache()
|
|
{
|
|
let packet = {
|
|
to: this._actor,
|
|
type: "clearMessagesCache",
|
|
};
|
|
this._client.request(packet);
|
|
},
|
|
|
|
/**
|
|
* Get Web Console-related preferences on the server.
|
|
*
|
|
* @param object aPreferences
|
|
* An object with the preferences you want to retrieve.
|
|
* @param function [aOnResponse]
|
|
* Optional function to invoke when the response is received.
|
|
*/
|
|
getPreferences: function WCC_getPreferences(aPreferences, aOnResponse)
|
|
{
|
|
let packet = {
|
|
to: this._actor,
|
|
type: "getPreferences",
|
|
preferences: aPreferences,
|
|
};
|
|
this._client.request(packet, aOnResponse);
|
|
},
|
|
|
|
/**
|
|
* Set Web Console-related preferences on the server.
|
|
*
|
|
* @param object aPreferences
|
|
* An object with the preferences you want to change.
|
|
* @param function [aOnResponse]
|
|
* Optional function to invoke when the response is received.
|
|
*/
|
|
setPreferences: function WCC_setPreferences(aPreferences, aOnResponse)
|
|
{
|
|
let packet = {
|
|
to: this._actor,
|
|
type: "setPreferences",
|
|
preferences: aPreferences,
|
|
};
|
|
this._client.request(packet, aOnResponse);
|
|
},
|
|
|
|
/**
|
|
* Retrieve the request headers from the given NetworkEventActor.
|
|
*
|
|
* @param string aActor
|
|
* The NetworkEventActor ID.
|
|
* @param function aOnResponse
|
|
* The function invoked when the response is received.
|
|
*/
|
|
getRequestHeaders: function WCC_getRequestHeaders(aActor, aOnResponse)
|
|
{
|
|
let packet = {
|
|
to: aActor,
|
|
type: "getRequestHeaders",
|
|
};
|
|
this._client.request(packet, aOnResponse);
|
|
},
|
|
|
|
/**
|
|
* Retrieve the request cookies from the given NetworkEventActor.
|
|
*
|
|
* @param string aActor
|
|
* The NetworkEventActor ID.
|
|
* @param function aOnResponse
|
|
* The function invoked when the response is received.
|
|
*/
|
|
getRequestCookies: function WCC_getRequestCookies(aActor, aOnResponse)
|
|
{
|
|
let packet = {
|
|
to: aActor,
|
|
type: "getRequestCookies",
|
|
};
|
|
this._client.request(packet, aOnResponse);
|
|
},
|
|
|
|
/**
|
|
* Retrieve the request post data from the given NetworkEventActor.
|
|
*
|
|
* @param string aActor
|
|
* The NetworkEventActor ID.
|
|
* @param function aOnResponse
|
|
* The function invoked when the response is received.
|
|
*/
|
|
getRequestPostData: function WCC_getRequestPostData(aActor, aOnResponse)
|
|
{
|
|
let packet = {
|
|
to: aActor,
|
|
type: "getRequestPostData",
|
|
};
|
|
this._client.request(packet, aOnResponse);
|
|
},
|
|
|
|
/**
|
|
* Retrieve the response headers from the given NetworkEventActor.
|
|
*
|
|
* @param string aActor
|
|
* The NetworkEventActor ID.
|
|
* @param function aOnResponse
|
|
* The function invoked when the response is received.
|
|
*/
|
|
getResponseHeaders: function WCC_getResponseHeaders(aActor, aOnResponse)
|
|
{
|
|
let packet = {
|
|
to: aActor,
|
|
type: "getResponseHeaders",
|
|
};
|
|
this._client.request(packet, aOnResponse);
|
|
},
|
|
|
|
/**
|
|
* Retrieve the response cookies from the given NetworkEventActor.
|
|
*
|
|
* @param string aActor
|
|
* The NetworkEventActor ID.
|
|
* @param function aOnResponse
|
|
* The function invoked when the response is received.
|
|
*/
|
|
getResponseCookies: function WCC_getResponseCookies(aActor, aOnResponse)
|
|
{
|
|
let packet = {
|
|
to: aActor,
|
|
type: "getResponseCookies",
|
|
};
|
|
this._client.request(packet, aOnResponse);
|
|
},
|
|
|
|
/**
|
|
* Retrieve the response content from the given NetworkEventActor.
|
|
*
|
|
* @param string aActor
|
|
* The NetworkEventActor ID.
|
|
* @param function aOnResponse
|
|
* The function invoked when the response is received.
|
|
*/
|
|
getResponseContent: function WCC_getResponseContent(aActor, aOnResponse)
|
|
{
|
|
let packet = {
|
|
to: aActor,
|
|
type: "getResponseContent",
|
|
};
|
|
this._client.request(packet, aOnResponse);
|
|
},
|
|
|
|
/**
|
|
* Retrieve the timing information for the given NetworkEventActor.
|
|
*
|
|
* @param string aActor
|
|
* The NetworkEventActor ID.
|
|
* @param function aOnResponse
|
|
* The function invoked when the response is received.
|
|
*/
|
|
getEventTimings: function WCC_getEventTimings(aActor, aOnResponse)
|
|
{
|
|
let packet = {
|
|
to: aActor,
|
|
type: "getEventTimings",
|
|
};
|
|
this._client.request(packet, aOnResponse);
|
|
},
|
|
|
|
/**
|
|
* Send a HTTP request with the given data.
|
|
*
|
|
* @param string aData
|
|
* The details of the HTTP request.
|
|
* @param function aOnResponse
|
|
* The function invoked when the response is received.
|
|
*/
|
|
sendHTTPRequest: function WCC_sendHTTPRequest(aData, aOnResponse) {
|
|
let packet = {
|
|
to: this._actor,
|
|
type: "sendHTTPRequest",
|
|
request: aData
|
|
};
|
|
this._client.request(packet, aOnResponse);
|
|
},
|
|
|
|
/**
|
|
* Start the given Web Console listeners.
|
|
*
|
|
* @see this.LISTENERS
|
|
* @param array aListeners
|
|
* Array of listeners you want to start. See this.LISTENERS for
|
|
* known listeners.
|
|
* @param function aOnResponse
|
|
* Function to invoke when the server response is received.
|
|
*/
|
|
startListeners: function WCC_startListeners(aListeners, aOnResponse)
|
|
{
|
|
let packet = {
|
|
to: this._actor,
|
|
type: "startListeners",
|
|
listeners: aListeners,
|
|
};
|
|
this._client.request(packet, aOnResponse);
|
|
},
|
|
|
|
/**
|
|
* Stop the given Web Console listeners.
|
|
*
|
|
* @see this.LISTENERS
|
|
* @param array aListeners
|
|
* Array of listeners you want to stop. See this.LISTENERS for
|
|
* known listeners.
|
|
* @param function aOnResponse
|
|
* Function to invoke when the server response is received.
|
|
*/
|
|
stopListeners: function WCC_stopListeners(aListeners, aOnResponse)
|
|
{
|
|
let packet = {
|
|
to: this._actor,
|
|
type: "stopListeners",
|
|
listeners: aListeners,
|
|
};
|
|
this._client.request(packet, aOnResponse);
|
|
},
|
|
|
|
/**
|
|
* Return an instance of LongStringClient for the given long string grip.
|
|
*
|
|
* @param object aGrip
|
|
* The long string grip returned by the protocol.
|
|
* @return object
|
|
* The LongStringClient for the given long string grip.
|
|
*/
|
|
longString: function WCC_longString(aGrip)
|
|
{
|
|
if (aGrip.actor in this._longStrings) {
|
|
return this._longStrings[aGrip.actor];
|
|
}
|
|
|
|
let client = new LongStringClient(this._client, aGrip);
|
|
this._longStrings[aGrip.actor] = client;
|
|
return client;
|
|
},
|
|
|
|
/**
|
|
* Close the WebConsoleClient. This stops all the listeners on the server and
|
|
* detaches from the console actor.
|
|
*
|
|
* @param function aOnResponse
|
|
* Function to invoke when the server response is received.
|
|
*/
|
|
close: function WCC_close(aOnResponse)
|
|
{
|
|
this.stopListeners(null, aOnResponse);
|
|
this._longStrings = null;
|
|
this._client = null;
|
|
},
|
|
};
|