Crossfire 0.3a5 Migration

From FirebugWiki

(Difference between revisions)
Jump to: navigation, search
m (onToggleBreakpoint)
m (Replaced content with "#REDIRECT [https://github.com/firebug-crossfire/crossfire/wiki/Crossfire-0.3a4-to-0.3a5-migration 0.3a5 Migration on Github]")
 
(38 intermediate revisions not shown)
Line 1: Line 1:
-
== Crossfire 0.3a5 Migration Guide ==
+
#REDIRECT [https://github.com/firebug-crossfire/crossfire/wiki/Crossfire-0.3a4-to-0.3a5-migration 0.3a5 Migration on Github]
-
 
+
-
During 0.3a5 development there was a lot of work done to make the protocol more consistent and coherent, as expected, this work brought with it many changes to the protocol and a few changes that are no longer compatible with existing versions of Crossfire.
+
-
 
+
-
This guide will help ease the transition from using a pre-0.3a5 version of Crossfire, with each affected protocol entity described in its own following section.
+
-
 
+
-
== changebreakpoint ==
+
-
 
+
-
[[Crossfire_Protocol_Reference#changebreakpoint|changebreakpoint]]
+
-
 
+
-
'''Example Request'''
+
-
:
+
-
An example of the request you send:
+
-
:
+
-
<source lang="javascript">
+
-
Content-Length:115
+
-
\r\n\r\n
+
-
{
+
-
  "type":"request",
+
-
  "command":"changebreakpoint",
+
-
  "context_id":"xf0.3::1021597",
+
-
  "seq":21,
+
-
  "arguments":{"breakpoint":7},
+
-
}
+
-
\r\n
+
-
</source>
+
-
:
+
-
'''Example Response'''
+
-
:
+
-
An example of the response you receive:
+
-
:
+
-
<source lang="javascript">
+
-
Content-Length:115
+
-
\r\n\r\n
+
-
{
+
-
  "type":"response",
+
-
  "command":"changebreakpoint",
+
-
  "seq":22,
+
-
  "request_seq":21,
+
-
  "body":{},
+
-
  "running":true,
+
-
  "success":false
+
-
}
+
-
</source>
+
-
:
+
-
'''New in 0.3a5'''
+
-
# You must pass in the "handle" argument to denote which breakpoint to edit
+
-
# You can optionally specify a "condition" argument to set as the new condition - null removes a condition previously set
+
-
# You can optionally specify an "enabled" argument to enable / disable a breakpoint
+
-
# The response will now contain the handle of the breakpoint if the change request succeeded
+
-
 
+
-
== clearbreakpoint ==
+
-
 
+
-
[[Crossfire_Protocol_Reference#clearbreakpoint|clearbreakpoint]]
+
-
 
+
-
'''Example Request'''
+
-
:
+
-
An example of the request you send:
+
-
:
+
-
<source lang="javascript">
+
-
Content-Length:194
+
-
\r\n\r\n
+
-
{
+
-
  "type":"request",
+
-
  "command":"clearbreakpoint",
+
-
  "context_id":"xf0.3::6179868",
+
-
  "seq":9,
+
-
  "arguments":{
+
-
                "target":"http://www.mozilla.com/includes/yui/2.5.1/animation/animation-min.js",
+
-
                "line":8
+
-
              },
+
-
}
+
-
\r\n
+
-
</source>
+
-
:
+
-
'''Example Response'''
+
-
:
+
-
An example of the response you receive:
+
-
:
+
-
<source lang="javascript">
+
-
Content-Length:187
+
-
\r\n\r\n
+
-
{
+
-
  "command":"clearbreakpoint",
+
-
  "context_id":"xf0.3::6179868",
+
-
  "type":"response",
+
-
  "seq":13,
+
-
  "request_seq":9,
+
-
  "body":{
+
-
          "context_id":"xf0.3::6179868",
+
-
          "breakpoint":18
+
-
        },
+
-
  "running":true,
+
-
  "success":true
+
-
}
+
-
</source>
+
-
:
+
-
'''New in 0.3a5'''
+
-
# You must specify the "handle" argument for the breakpoint you wish to remove
+
-
# You no longer specify the line or URL information in the request
+
-
# The response no longer contains the information for the breakpoint that was removed
+
-
 
+
-
== getbreakpoint ==
+
-
 
+
-
[[Crossfire_Protocol_Reference#getbreakpoint|getbreakpoint]]
+
-
 
+
-
'''Example Request'''
+
-
:
+
-
An example of the request you send:
+
-
:
+
-
<source lang="javascript">
+
-
Content-Length:112
+
-
\r\n\r\n
+
-
{
+
-
  "type":"request",
+
-
  "command":"getbreakpoint",
+
-
  "context_id":"xf0.3::1021597",
+
-
  "seq":16,
+
-
  "arguments":{"breakpoint":5}
+
-
}
+
-
\r\n
+
-
</source>
+
-
:
+
-
'''Example Response'''
+
-
:
+
-
An example of the response you receive:
+
-
:
+
-
<source lang="javascript">
+
-
Content-Length:224
+
-
\r\n\r\n
+
-
{
+
-
  "type":"response",
+
-
  "command":"getbreakpoint",
+
-
  "seq":17,
+
-
  "request_seq":16,
+
-
  "body":{
+
-
          "handle":5,
+
-
          "type":"line",
+
-
          "line":7,
+
-
          "target":"http://www.mozilla.com/includes/yui/2.5.1/animation/animation-min.js"
+
-
        },
+
-
  "running":true,
+
-
  "success":true
+
-
}
+
-
</source>
+
-
 
+
-
'''Pending changes in 0.3a5'''
+
-
:
+
-
#"context_id" will be ignored in the request and not supplied in the response
+
-
#the "breakpoint" argument will change name to "handle"
+
-
 
+
-
== getbreakpoints ==
+
-
 
+
-
[[Crossfire_Protocol_Reference#getbreakpoints|getbreakpoints]]
+
-
 
+
-
'''Example Request'''
+
-
:
+
-
An example of the request you send:
+
-
:
+
-
<source lang="javascript">
+
-
Content-Length:84
+
-
\r\n\r\n
+
-
{
+
-
"type":"request",
+
-
"command":"getbreakpoints",
+
-
"context_id":"xf0.3::6179868",
+
-
"seq":12,
+
-
}
+
-
\r\n
+
-
</source>
+
-
:
+
-
'''Example Response'''
+
-
:
+
-
An example of the response you receive:
+
-
:
+
-
<source lang="javascript">
+
-
Content-Length:312
+
-
\r\n\r\n
+
-
{
+
-
  "type":"response",
+
-
  "command":"getbreakpoints",
+
-
  "context_id":"xf0.3::6179868",
+
-
  "seq":13,
+
-
  "request_seq":12,
+
-
  "body":{
+
-
          "context_id":"xf0.3::6179868",
+
-
          "breakpoints":[{
+
-
                            "handle":27,
+
-
                            "type":"line",
+
-
                            "line":7,
+
-
                            "target":"http://www.mozilla.com/includes/yui/2.5.1/yahoo-dom-event/yahoo-dom-event.js"
+
-
                        }]
+
-
        },
+
-
  "running":true,
+
-
  "success":true
+
-
}
+
-
</source>
+
-
:
+
-
'''New in 0.3a5'''
+
-
# You can optionally specify a "context_id" argument that will return only the collection of breakpoint ids that apply to that context
+
-
# The "context_id" attribute has been removed  from the response
+
-
 
+
-
== setbreakpoint ==
+
-
 
+
-
[[Crossfire_Protocol_Reference#setbreakpoint|setbreakpoint]]
+
-
 
+
-
'''Example Request'''
+
-
:
+
-
An example of the request you send:
+
-
:
+
-
<source lang="javascript">
+
-
Content-Length:192
+
-
\r\n\r\n
+
-
{
+
-
  "type":"request"
+
-
  "command":"setbreakpoint",
+
-
  "context_id":"xf0.3::6179868",
+
-
  "seq":5,
+
-
  "arguments":{
+
-
                "target":"http://www.mozilla.com/includes/yui/2.5.1/animation/animation-min.js",
+
-
                "line":8
+
-
              }
+
-
}
+
-
\r\n
+
-
</source>
+
-
:
+
-
'''Example Response'''
+
-
:
+
-
An example of the response you receive:
+
-
:
+
-
<source lang="javascript">
+
-
Content-Length:298
+
-
\r\n\r\n
+
-
{
+
-
  "type":"response",
+
-
  "command":"setbreakpoint",
+
-
  "context_id":"xf0.3::6179868",
+
-
  "seq":9,
+
-
  "request_seq":5,
+
-
  "body":{
+
-
          "context_id":"xf0.3::6179868",
+
-
          "breakpoint":{
+
-
                          "handle":22,
+
-
                          "type":"line",
+
-
                          "line":8,
+
-
                          "target":"http://www.mozilla.com/includes/yui/2.5.1/animation/animation-min.js"
+
-
                        }
+
-
          },
+
-
  "running":true,
+
-
  "success":true,
+
-
}
+
-
</source>
+
-
:
+
-
'''New in 0.3a5'''
+
-
# The arguments are changing to include a "location" argument that will contain the placement information for the breakpoint. For example "arguments":{"location":{"url":"www.goolge.ca","line":3}}
+
-
# Optionally you can specify a "context_id" argument the breakpoint should apply to
+
-
# Optionally you can specify the enablement of the breakpoint using the "enabled" argument
+
-
# Optionally you can specify a condition for the breakpoint using the "condition" argument
+
-
 
+
-
== updatecontext ==
+
-
 
+
-
The <code>updatecontext</code> request has been added to the protocol in a5 and allows you to load a new URL into an existing context.
+
-
:
+
-
The related work item is: [http://code.google.com/p/fbug/issues/detail?id=3476 Issue 3841]
+
-
:
+
-
'''Action Required'''
+
-
:
+
-
None, unless you want to support or use the new request
+
-
:
+
-
'''Details'''
+
-
:
+
-
Details on the new request can be found on the [[Crossfire Protocol Reference#updatecontext|protocol reference]] page.
+
-
 
+
-
== onScript ==
+
-
 
+
-
The <code>onScript</code> event has been updated to return attributes with consistent names and the meta-data about the script that was loaded.
+
-
:
+
-
The related work item is: [http://code.google.com/p/fbug/issues/detail?id=3476 Issue 3476]
+
-
:
+
-
'''Action Required'''
+
-
:
+
-
The following changes require clients to discontinue using two removed attributes; <code>href</code> and <code>context_href</code> and begin using the new <code>script</code> object.
+
-
:
+
-
'''Details'''
+
-
:
+
-
In the pre-0.3a5 versions of Crossfire the <code>onScript</code> event had the following form:
+
-
:
+
-
<source lang="javascript">
+
-
Content-Length:192
+
-
\r\n\r\n
+
-
{
+
-
  "type":"event",
+
-
  "event":"onScript",
+
-
  "context_id":"xf0.3::8127620",
+
-
  "body":{
+
-
          "context_href":"http://www.google.ca/advanced_search?hl=en/4",
+
-
          "href":"http://www.google.ca/advanced_search?hl=en"
+
-
        }
+
-
}
+
-
</source>
+
-
:
+
-
The following has changed:
+
-
* the <code>body</code> object no longer contains an <code>href</code> or <code>context_href</code> entry
+
-
* the <code>body</code> object now contains the <code>script</code> meta-data object, identical to what is returned via a [[Crossfire_Protocol_Reference#script|script]] request with no included source.
+
-
:
+
-
New event form:
+
-
:
+
-
<source lang="javascript">
+
-
Content-Length:631
+
-
\r\n\r\n
+
-
{
+
-
  "seq":10,
+
-
  "type":"event",
+
-
  "event":"onScript",
+
-
  "context_id":"xf0.3::2531266",
+
-
  "data":{
+
-
          "script": {
+
-
                      "id":"http://www.google.ca/advanced_search?hl=en",
+
-
                      "lineOffset":0,
+
-
                      "columnOffset":0,
+
-
                      "sourceStart":"(function()\u000a",
+
-
                      "sourceLength":311,
+
-
                      "lineCount":311,
+
-
                      "compilationType":"top-level"
+
-
                    }
+
-
          }
+
-
}
+
-
</source>
+
-
:
+
-
The values and kinds of the <code>script</code> object are as follows:
+
-
:
+
-
{| border="1" cellpadding="5" cellspacing="0"
+
-
|-
+
-
| <code>id</code> || a String identifier for the script - never null
+
-
|-
+
-
| <code>lineOffset</code> || a Number representing the line offset of the script - never less than 0
+
-
|-
+
-
| <code>columnOffset</code> || a Number representing the column offset of the script - never less than 0
+
-
|-
+
-
| <code>sourceStart</code> || a String representing the first line of source in the script - never null
+
-
|-
+
-
| <code>sourceLength</code> || a Number representing the entire length of the source of the script - never less than 0
+
-
|-
+
-
| <code>lineCount</code> || a Number representing the total number of lines of source in the script - never less than 0
+
-
|-
+
-
| <code>compilationType</code> || a String describing the kind of the script - see [http://code.google.com/p/fbug/source/browse/branches/firebug1.7/content/firebug/sourceFile.js sourceFile.js] for complete listing of types
+
-
|}
+
-
 
+
-
== onToggleBreakpoint ==
+
-
:
+
-
The related work item is: [http://code.google.com/p/fbug/issues/detail?id=3476 Issue 3928]
+
-
:
+
-
[[Crossfire_Protocol_Reference#onToggleBreakpoint|onToggleBreakpoint]]
+
-
 
+
-
<source lang="javascript">
+
-
Content-Length:153
+
-
\r\n\r\n
+
-
{
+
-
  "type":"event",
+
-
  "event":"onToggleBreakpoint",
+
-
  "context_id":"xf0.3::7640268",
+
-
  "seq":20,
+
-
  "data":{
+
-
          "url":"http://localhost:8080/js/e4.js",
+
-
          "line":19,
+
-
          "set":true
+
-
        }
+
-
}
+
-
</source>
+

Latest revision as of 03:02, 15 May 2012

  1. REDIRECT 0.3a5 Migration on Github
Personal tools