Compare Revisions

Web Console remoting

Revision 445765:

Revision 445765 by kscarfone on

Revision 458851:

Revision 458851 by mihaisucan on

Title:
Web Console remoting
Web Console remoting
Slug:
Tools/Web_Console/remoting
Tools/Web_Console/remoting
Tags:
"Debugging","web console","Reference"
"Référence","Reference","web console","Debugging"
Content:

Revision 445765
Revision 458851
n7    <h1 id="Introduction">n7    <h2 id="Introduction">
n9    </h1>n9    </h2>
n21    <h1 id="The_WebConsoleActor_and_the_WebConsoleClient">n21    <h2 id="The_WebConsoleActor_and_the_WebConsoleClient">
n23    </h1>n23    </h2>
n68    <pre class="brush:js;">n68    <pre class="brush:json;">
n91    <h2 id="startListeners(listeners.2C_onResponse)">n91    <h3 id="startListeners(listeners.2C_onResponse)">
n93    </h2>n93    </h3>
n97    <pre class="brush:js;">n97    <pre class="brush:json;">
n112    <pre class="brush:js;">n112    <pre class="brush:json;">
n141    <pre class="brush: js">n141    <pre class="brush: json">
142<code class="brush: js">{142<code class="brush: json">{
n153    <pre class="brush: js">n153    <pre class="brush: json">
n163    <h2 id="getCachedMessages(types.2C_onResponse)">n163    <h3 id="getCachedMessages(types.2C_onResponse)">
n165    </h2>n165    </h3>
n169    <pre class="brush:js;">n169    <pre class="brush:json;">
n182    <pre class="brush:js;">n182    <pre class="brush:json;">
n191    <h2 id="setPreferences(prefs.2C_onResponse)">n191    <h3 id="Actor_preferences">
192      <code>setPreferences(prefs, onResponse)</code>192      Actor preferences
193    </h2>193    </h3>
n197    <pre class="brush:js;">n197    <pre class="brush:json;">
n209    <pre class="brush:js;">n209    <pre class="brush:json;">
n218      For convenience you can use <code>webConsoleClient.setPrefen218      For convenience you can use <code>webConsoleClient.setPrefe
>rences(prefs, onResponse)</code>.>rences(prefs, onResponse)</code>. The <code>prefs</code> argument
 > is an object like <code>{ prefName: prefValue, ... }</code>.
219    </p>
219    </p>220    <p>
221      In Firefox 25 we added the <code>getPreferences</code> requ
 >est packet:
222    </p>
223    <pre class="brush:json;">
224{
225  "to": "conn0.console34",
226  "type": "getPreferences",
227  "preferences": [
228    "NetworkMonitor.saveRequestAndResponseBodies"
229  ]
230}
231</pre>
232    <p>
233      Reply packet:
234    </p>
235    <pre class="brush:json;">
236{
237  "preferences": {
238    "NetworkMonitor.saveRequestAndResponseBodies": false
239  },
240  "from": "conn0.console34"
241}
242</pre>
243    <p>
244      You can also use the <code>webConsoleClient.getPreferences(
 >prefs, onResponse)</code>. The <code>prefs</code> argument is an 
 >array of preferences you want to get their values for, by name.
245    </p>
246    <h3 id="Private_browsing">
247      Private browsing
248    </h3>
249    <p>
250      The Browser Console can be used while the user has private 
 >windows open. Each page error, console API message and network re
 >quest is annotated with a <code>private</code> flag. Private mess
 >ages are cleared whenever the last private window is closed. The 
 >console actor provides the <code>lastPrivateContextExited</code> 
 >notification:
251    </p>
252    <pre class="brush:json;">
253{
254  "from": "conn0.console19",
255  "type": "lastPrivateContextExited"
256}
257</pre>
258    <p>
259      This notification is sent only when your client is attached
 > to the global console actor, it does not make sense for tab cons
 >ole actors.
260    </p>
261    <div class="note">
262      <p>
263        This notification has been introduced in Firefox 24.
264      </p>
265    </div>
220    <h1 id="Page_errors">266    <h2 id="Page_errors">
n222    </h1>n268    </h2>
n227      The new <code>pageError</code> packet is:n273      The <code>pageError</code> packet is:
n229    <pre class="brush:js;">n275    <pre class="brush:json;">
n234    "message": "[JavaScript Error: \"ReferenceError: foo is not dn
>efined\" {file: \"http://localhost/~mihai/mozilla/test.js\" line: 
> 6}]", 
n245    "strict": falsen290    "strict": false,
291    "private": false,
n252    <h1 id="Console_API_messages_and_JavaScript_evaluation">n298    <p>
253      Console API messages and JavaScript evaluation299      The <code>private</code> flag tells if the error comes from
 > a private window/tab (added in Firefox 24).
300    </p>
301    <p>
302      Starting with Firefox 24 the <code>errorMessage</code> and 
 ><code>lineText</code> properties can be long string actor grips i
 >f the string is very long.
303    </p>
304    <h2 id="Console_API_messages">
305      Console API messages
254    </h1>306    </h2>
n266    <h2 id="Console_API_messages.2C_the_consoleAPICall_packet">n
267      Console API messages, the <code>consoleAPICall</code> packe
>t 
268    </h2>
n273      For each console message we receive in the server, we send n322      For each console message we receive in the server, we send 
>something similar to the following packet to the client:>the following <code>consoleAPICall</code> packet to the client:
n275    <pre class="brush:js;">n324    <pre class="brush:json;">
nn334    "private": false,
nn354      The <code>private</code> flag tells if the console API call
 > comes from a private window/tab (added in Firefox 24).
355    </p>
356    <p>
n306    <h2 id="JavaScript_evaluation">n359    <h3 id="JavaScript_evaluation">
n308    </h2>n361    </h3>
309    <h3 id="The_evaluateJS_request_and_response_packets">362    <h4 id="The_evaluateJS_request_and_response_packets">
n311    </h3>n364    </h4>
n315    <pre class="brush:js;">n368    <pre class="brush:json;">
n319  "text": "document"n372  "text": "document",
373  "bindObjectActor": null,
374  "frameActor": null,
375  "url": null,
n322    <p>n
323      Response packet:
324    </p>378    <p>
379      The <code>bindObjectActor</code> property is an optional <c
 >ode>ObjectActor</code> ID that points to a <code>Debugger.Object<
 >/code>. This option allows you to bind <code>_self</code> to the 
 ><code>Debugger.Object</code> of the given object actor, during st
 >ring evaluation. See <a href="https://developer.mozilla.org/en-US
 >/docs/SpiderMonkey/JS_Debugger_API_Reference/Debugger.Object#eval
 >InGlobalWithBindings%28%29"><code>evalInGlobalWithBindings()</cod
 >e></a> for information about bindings.
380    </p>
381    <div class="note">
382      <p>
383        The variable view needs to update objects and it does so 
 >by binding <code>_self</code> to the <code>Debugger.Object</code>
 > of the <code>ObjectActor</code> that is being viewed. As such, v
 >ariable view sends strings like these for evaluation:
384      </p>
325    <pre class="brush:js;">385      <pre class="brush:js;">
386  _self["prop"] = value;
387</pre>
388    </div>
389    <p>
390      The <code>frameActor</code> property is an optional <code>F
 >rameActor</code> ID. The FA holds a reference to a <a href="https
 >://developer.mozilla.org/en-US/docs/SpiderMonkey/JS_Debugger_API_
 >Reference/Debugger.Frame"><code>Debugger.Frame</code></a>. This o
 >ption allows you to evaluate the string in the frame of the given
 > FA.
391    </p>
392    <p>
393      The <code>url</code> property is an optional URL to evaluat
 >e the script as (new in Firefox 25). The default source URL for e
 >valuation is "debugger eval code".
394    </p>
395    <p>
396      The response packet:
397    </p>
398    <pre class="brush:json;">
nn406    "extensible": true,
407    "frozen": false,
408    "sealed": false
n335  "error": null,n411  "exception": null,
336  "errorMessage": null,412  "exceptionMessage": null,
n342        <code>error</code> holds the JSON-ification of the exceptn418        <code>exception</code> holds the JSON-ification of the ex
>ion thrown during evaluation.>ception thrown during evaluation.
n345        <code>errorMessage</code> holds the <code>error.toString(n421        <code>exceptionMessage</code> holds the <code>exception.t
>)</code> result.>oString()</code> result.
nn430    <div class="warning">
431      <p>
432        In Firefox 23: we renamed the <code>error</code> and <cod
 >e>errorMessage</code> properties to <code>exception</code> and <c
 >ode>exceptionMessage</code> respectively, to avoid conflict with 
 >the default properties used when protocol errors occur.
433      </p>
434    </div>
354    <h2 id="Autocomplete_and_more">435    <h3 id="Autocomplete_and_more">
n356    </h2>n437    </h3>
n360    <pre class="brush:js;">n441    <pre class="brush:json;">
n371    <pre class="brush:js;">n452    <pre class="brush:json;">
n391    <h1 id="Network_logging">n472    <h2 id="Network_logging">
n393    </h1>n474    </h2>
394    <h2 id="The_networkEvent_packet">475    <h3 id="The_networkEvent_packet">
n396    </h2>n477    </h3>
n400    <pre class="brush:js;">n481    <pre class="brush:json;">
n409    "isXHR": falsen490    "isXHR": false,
491    "private": false
nn498    <p>
499      The <code>private</code> flag tells if the network request 
 >comes from a private window/tab (added in Firefox 24).
500    </p>
416    <h2 id="The_NetworkEventActor">501    <h3 id="The_NetworkEventActor">
n418    </h2>n503    </h3>
n422    <h3 id="The_networkEventUpdate_packet">n507    <h4 id="The_networkEventUpdate_packet">
n424    </h3>n509    </h4>
n428    <pre class="brush:js;">n513    <pre class="brush:json;">
n492    <h3 id="The_getRequestHeaders_and_other_packets">n577    <h4 id="The_getRequestHeaders_and_other_packets">
n494    </h3>n579    </h4>
n501    <pre class="brush:js;">n586    <pre class="brush:json;">
n520    <pre class="brush:js;">n605    <pre class="brush:json;">
n533    <pre class="brush:js;">n618    <pre class="brush:json;">
n552    <pre class="brush:js;">n637    <pre class="brush:json;">
n570    <pre class="brush:js;">n655    <pre class="brush:json;">
n584    <pre class="brush:js;">n669    <pre class="brush:json;">
n609    <pre class="brush:js;">n694    <pre class="brush:json;">
n627    <h2 id="The_fileActivity_packet">n712    <h3 id="The_fileActivity_packet">
n629    </h2>n714    </h3>
n633    <pre class="brush:js;">n718    <pre class="brush:json;">
n640    <h1 id="History">n725    <h2 id="History">
n642    </h1>n727    </h2>
n646    <ol>n731    <ul>
nn740      <li>Firefox 23: added the <code>bindObjectActor</code> and 
 ><code>frameActor</code> options to the <code>evaluateJS</code> re
 >quest packet.
741      </li>
742      <li>Firefox 24: new <code>private</code> flags for the cons
 >ole actor notifications, <a href="https://bugzilla.mozilla.org/sh
 >ow_bug.cgi?id=874061">bug 874061</a>. Also added the <code>lastPr
 >ivateContextExited</code> notification for the global console act
 >or.
743      </li>
744      <li>Firefox 24: new <code>isXHR</code> flag for the <code>n
 >etworkEvent</code> notification, <a href="https://bugzilla.mozill
 >a.org/show_bug.cgi?id=859046">bug 859046</a>.
745      </li>
746      <li>Firefox 24: removed the <code>message</code> property f
 >rom the <code>pageError</code> packet notification, <a href="http
 >s://bugzilla.mozilla.org/show_bug.cgi?id=877773">bug 877773</a>. 
 >The <code>lineText</code> and <code>errorMessage</code> propertie
 >s can be long string actors now.
747      </li>
748      <li>Firefox 25: added the <code>url</code> option to the <c
 >ode>evaluateJS</code> request packet.
749      </li>
750      <li>Firefox 25: added the <code>getPreferences</code> reque
 >st packet to the console actor, <a href="https://bugzilla.mozilla
 >.org/show_bug.cgi?id=886067">bug 886067</a>.
751      </li>
655    </ol>752    </ul>
656    <h1 id="Conclusions">753    <h2 id="Conclusions">
t658    </h1>t755    </h2>

Back to History