@@ -96,7 +96,7 @@ var FireQueryActor = ActorClass(
96
96
this . parent = parent ;
97
97
this . state = "detached" ;
98
98
99
- this . onDomNodeForm = this . onDomNodeForm . bind ( this ) ;
99
+ this . onNodeActorForm = this . onNodeActorForm . bind ( this ) ;
100
100
this . onNavigate = this . onNavigate . bind ( this ) ;
101
101
} ,
102
102
@@ -138,7 +138,7 @@ var FireQueryActor = ActorClass(
138
138
Previewers . Object . unshift ( this . onBuildPreview . bind ( this ) ) ;
139
139
140
140
Events . on ( this . parent , "navigate" , this . onNavigate ) ;
141
- DebuggerServer . on ( "domnode- form", this . onDomNodeForm ) ;
141
+ Events . on ( NodeActor , " form", this . onNodeActorForm ) ;
142
142
} ) , {
143
143
request : { } ,
144
144
response : {
@@ -156,7 +156,7 @@ var FireQueryActor = ActorClass(
156
156
this . state = "detached" ;
157
157
158
158
Events . off ( this . parent , "navigate" , this . onNavigate ) ;
159
- DebuggerServer . off ( "domnode- form", this . onDomNodeForm ) ;
159
+ Events . off ( NodeActor , " form", this . onNodeActorForm ) ;
160
160
161
161
// xxxHonza: remove previewer
162
162
} ) , {
@@ -305,17 +305,21 @@ var FireQueryActor = ActorClass(
305
305
306
306
// Debugger Server Events
307
307
308
- onDomNodeForm : makeInfallible ( function ( eventId , nodeActor , form ) {
308
+ onNodeActorForm : makeInfallible ( function ( event ) {
309
+ let nodeActor = event . target ;
310
+ let form = event . data ;
309
311
let data = hasJQueryData ( nodeActor . rawNode ) ;
310
312
313
+ // xxxHonza: check that the event comes from an actor in the
314
+ // same connection as this actor.
315
+
311
316
// Pass only a flag that says whether there are any jQuery
312
317
// data associated or not. The data itself will be fetched
313
318
// on demand (when displayed e.g. in a tooltip)
314
- //form.setProperty("jQueryData", data);
315
- form . setProperty ( "hasJQueryData" , ! ! data )
319
+ form . setFormProperty ( "hasJQueryData" , ! ! data )
316
320
317
321
let json = data ? JSON . stringify ( data ) : "" ;
318
- Trace . sysout ( "FireQueryActor.onDomNodeForm ; " + json , arguments ) ;
322
+ Trace . sysout ( "FireQueryActor.onNodeActorForm ; " + json , arguments ) ;
319
323
} )
320
324
} ) ;
321
325
@@ -362,22 +366,37 @@ function hasJQueryData(object) {
362
366
} ;
363
367
364
368
// Patching NodeActor (add custom info into actor form)
365
- // xxxHonza: Bug 1036949 - New API: MarkupView customization
366
- /*let originalForm = NodeActor.prototype.form;
369
+ // Bug 1036949 - New API: MarkupView customization
370
+ // xxxHonza: Can be removed as soon as Firefox 41 is the
371
+ // minimum required version.
372
+ let originalForm = NodeActor . prototype . form ;
367
373
NodeActor . prototype . form = function ( ) {
368
374
let form = originalForm . apply ( this , arguments ) ;
369
- if (!form.setProperty) {
370
- form.setProperty = (name, value) => {
375
+
376
+ // form.setFormProperty has been introduced in Bug 1036949
377
+ // (released in Firefox 41)
378
+ // The content of the following if block is taken from the
379
+ // patch attached to Bug 1036949
380
+ if ( ! form . setFormProperty ) {
381
+ // Add an extra API for custom properties added by other
382
+ // modules/extensions.
383
+ form . setFormProperty = ( name , value ) => {
371
384
if ( ! form . props ) {
372
385
form . props = { } ;
373
386
}
374
387
form . props [ name ] = value ;
375
388
} ;
376
389
377
- DebuggerServer.emit("domnode-form", this, form);
390
+ // Fire an event so, other modules can create its own properties
391
+ // that should be passed to the client (within the form.props field).
392
+ Events . emit ( NodeActor , "form" , {
393
+ target : this ,
394
+ data : form
395
+ } ) ;
378
396
}
397
+
379
398
return form ;
380
- }*/
399
+ }
381
400
382
401
// Exports from this module
383
402
exports . FireQueryActor = FireQueryActor ;
0 commit comments