@@ -63,7 +63,16 @@ cls.ResourceManagerService = function(view, network_logger)
6363 {
6464 // bounce if _suppress_updates
6565 if ( this . _suppress_updates )
66+ {
67+ if ( msg && msg . id )
68+ {
69+ // suppress the uid altogether if its URL matches the one we are requesting
70+ var r = this . _network_logger . get_resources ( [ msg . id ] ) ;
71+ if ( r && r [ 0 ] && r [ 0 ] . url == this . _suppress_updates_url )
72+ this . _suppress_uids [ msg . id ] = true ;
73+ }
6674 return setTimeout ( this . _update_bound , THROTTLE_DELAY ) ;
75+ }
6776
6877 var ctx = { } ;
6978 // get list of window_contexts for which we saw the main_document
@@ -75,7 +84,12 @@ cls.ResourceManagerService = function(view, network_logger)
7584
7685 if ( ctx . windowList && ctx . windowList . length )
7786 {
78- ctx . resourceList = [ ] ;
87+ ctx . resourceList = ( this . _network_logger . get_resources ( ) || [ ] )
88+ . filter ( function ( v )
89+ {
90+ return ! this . _suppress_uids . hasOwnProperty ( v . uid ) ;
91+ } , this ) ;
92+
7993 ctx . documentResourceHash = { } ;
8094
8195 // get all the resources
@@ -84,12 +98,6 @@ cls.ResourceManagerService = function(view, network_logger)
8498 . forEach ( function ( w , i )
8599 {
86100 windowID_index [ w . id ] = i ;
87-
88- // get resources of the current window
89- var windowResources = w . get_resources ( ) ;
90-
91- // concat the result to flat list of resource
92- ctx . resourceList = ctx . resourceList . concat ( windowResources ) ;
93101 } ) ;
94102
95103
@@ -171,7 +179,7 @@ cls.ResourceManagerService = function(view, network_logger)
171179 )
172180 this . _listDocuments ( ) ;
173181
174- ctx . selectedResourceID = this . _selectedResourceID ;
182+ ctx . selectedResourceUID = this . _selectedResourceUID ;
175183 ctx . documentResources = this . _documentResources ;
176184 ctx . collapsed = this . _collapsedHash ;
177185 this . _context = ctx ;
@@ -223,34 +231,34 @@ cls.ResourceManagerService = function(view, network_logger)
223231 if ( ! this . _context )
224232 return ;
225233
226- var parent = target . get_ancestor ( '[data-resource-id ]' ) ;
234+ var parent = target . get_ancestor ( '[data-resource-uid ]' ) ;
227235 if ( ! parent )
228236 return ;
229237
230- var id = parent . getAttribute ( 'data-resource-id ' ) ;
231- this . highlight_resource ( id ) ;
232- cls . ResourceDetailView . instance . show_resource ( id ) ;
238+ var uid = parent . getAttribute ( 'data-resource-uid ' ) ;
239+ this . highlight_resource ( uid ) ;
240+ cls . ResourceDetailView . instance . show_resource ( uid ) ;
233241 } . bind ( this ) ;
234242
235- this . highlight_resource = function ( id )
243+ this . highlight_resource = function ( uid )
236244 {
237- var list , i , e ;
238- if ( this . _selectedResourceID == id )
245+ var e ;
246+ if ( this . _selectedResourceUID == uid )
239247 return ;
240248
241- if ( this . _selectedResourceID )
249+ if ( this . _selectedResourceUID )
242250 {
243- list = document . querySelectorAll ( '*[data-resource-id ="' + this . _selectedResourceID + '"]' ) ;
244- for ( i = 0 ; e = list [ i ] ; i ++ )
251+ e = document . querySelector ( '*[data-resource-uid ="' + this . _selectedResourceUID + '"]' ) ;
252+ if ( e )
245253 e . classList . remove ( 'resource-highlight' ) ;
246254 }
247255
248- this . _selectedResourceID = id ;
256+ this . _selectedResourceUID = uid ;
249257 if ( this . _context )
250- this . _context . selectedResourceID = id ;
258+ this . _context . selectedResourceUID = uid ;
251259
252- list = document . querySelectorAll ( '*[data-resource-id ="' + this . _selectedResourceID + '"]' ) ;
253- for ( i = 0 ; e = list [ i ] ; i ++ )
260+ e = document . querySelector ( '*[data-resource-uid ="' + this . _selectedResourceUID + '"]' ) ;
261+ if ( e )
254262 e . classList . add ( 'resource-highlight' ) ;
255263 } . bind ( this ) ;
256264
@@ -294,14 +302,15 @@ cls.ResourceManagerService = function(view, network_logger)
294302 this . _reset = function ( )
295303 {
296304 this . _context = null ;
297- this . _selectedResourceID = null ;
305+ this . _selectedResourceUID = null ;
298306
299307 this . _documentList = [ ] ;
300308 this . _documentURLHash = { } ;
301309 this . _collapsedHash = { } ;
302310 this . _documentResources = { } ;
303311
304312 this . _suppress_updates = false ;
313+ this . _suppress_uids = { } ;
305314 this . _view . update ( ) ;
306315 } ;
307316
@@ -310,17 +319,17 @@ cls.ResourceManagerService = function(view, network_logger)
310319 return this . _context ;
311320 } ;
312321
313- this . get_resource = function ( id )
322+ this . get_resource = function ( uid )
314323 {
315324 var ctx = this . _context ;
316325 if ( ! ctx )
317326 return null ;
318327
319- var resource = ctx . resourceList . filter ( function ( v ) { return v . id == id ; } ) ;
328+ var resource = ctx . resourceList . filter ( function ( v ) { return v . uid == uid ; } ) ;
320329 return resource && resource . last ;
321330 } ;
322331
323- this . get_resource_for_url = function ( url )
332+ this . get_resource_by_url = function ( url )
324333 {
325334 var ctx = this . _context ;
326335 if ( ! ctx )
@@ -330,16 +339,17 @@ cls.ResourceManagerService = function(view, network_logger)
330339 return resource && resource . last ;
331340 } ;
332341
333- this . request_resource = function ( url , callback , data )
342+ this . request_resource_data = function ( url , callback , data , resourceInfo )
334343 {
335344 this . _suppress_updates = true ;
336- new cls . ResourceRequest ( url , callback , data ) ;
345+ this . _suppress_updates_url = url ;
346+ new cls . ResourceRequest ( url , callback , data , resourceInfo ) ;
337347 }
338348
339349 this . _init ( ) ;
340350} ;
341351
342- cls . ResourceRequest = function ( url , callback , data )
352+ cls . ResourceRequest = function ( url , callback , data , resourceInfo )
343353{
344354 const
345355 SUCCESS = 0 ,
@@ -352,9 +362,10 @@ cls.ResourceRequest = function(url, callback, data)
352362
353363 var MAX_RETRIES = 3 ;
354364
355- this . _init = function ( url , callback , data )
365+ this . _init = function ( url , callback , data , resourceInfo )
356366 {
357367 this . url = url ;
368+ this . resourceInfo = resourceInfo ;
358369 this . _calback_data = data ;
359370 this . _callback = callback ;
360371 this . _retries = 0 ;
@@ -429,7 +440,11 @@ cls.ResourceRequest = function(url, callback, data)
429440
430441 // content -> mock a cls.NetworkLoggerEntry and instanciate a cls.ResourceInfo
431442 this . requests_responses = [ { responsebody :resourceData } ] ;
432- this . resourceInfo = new cls . ResourceInfo ( this ) ;
443+ var resourceInfo = new cls . ResourceInfo ( this ) ;
444+ if ( ! this . resourceInfo )
445+ this . resourceInfo = resourceInfo ;
446+ else
447+ this . resourceInfo . data = resourceInfo . data ;
433448
434449 // broadcast that we got payload of the resource
435450 window . messages . post ( 'resource-request-resource' , { resource_id : this . resource_id } ) ;
@@ -449,7 +464,7 @@ cls.ResourceRequest = function(url, callback, data)
449464 this . _fallback ( ) ;
450465 }
451466
452- this . _init ( url , callback , data ) ;
467+ this . _init ( url , callback , data , resourceInfo ) ;
453468}
454469
455470cls . ResourceRequest . prototype = new URIPrototype ( "url" ) ;
0 commit comments