@@ -39,12 +39,12 @@ templates.details = function(entry, left_val, do_raw)
3939 ] ,
4040 [ "div" ,
4141 [
42+ templates . details_headline ( entry ) ,
4243 [ "span" ,
4344 "class" , "close-request-detail" ,
4445 "handler" , "close-request-detail" ,
4546 "tabindex" , "1"
46- ] ,
47- templates . details_headline ( entry )
47+ ]
4848 ] ,
4949 "class" , "network-details-header-row"
5050 ] ,
@@ -66,20 +66,10 @@ templates.details = function(entry, left_val, do_raw)
6666
6767templates . _details_content = function ( entry , do_raw )
6868{
69- var requests_responses = entry . requests_responses . map ( do_raw ? this . _requests_responses_raw_bound
70- : this . _requests_responses_parsed_bound ) ;
71- if ( do_raw )
72- {
73- return [
74- requests_responses
75- ] ;
76- }
77- return (
78- [ "table" ,
79- entry . touched_network ? [ ] : this . did_not_touch_network ( entry ) ,
80- requests_responses
81- ]
82- ) ;
69+ return [
70+ entry . requests_responses . map ( do_raw ? this . _requests_responses_raw_bound
71+ : this . _requests_responses_parsed_bound )
72+ ] ;
8373} ;
8474
8575templates . details_headline = function ( entry )
@@ -88,29 +78,42 @@ templates.details_headline = function(entry)
8878 if ( responsecode && responsecode in cls . ResourceUtil . http_status_codes )
8979 responsecode = responsecode + " " + cls . ResourceUtil . http_status_codes [ responsecode ] ;
9080
91- return [ "h2" ,
92- [
93- [ "span" ,
94- entry . touched_network && responsecode ? String ( responsecode ) + " – " : "" ,
95- "data-spec" , "http#" + entry . current_responsecode
96- ] ,
97- [ "span" , entry . url ]
98- ] , "class" , "url"
99- ]
100- } ;
81+ var response_summary = [ ] ;
82+ if ( entry . touched_network && responsecode )
83+ {
84+ response_summary = [
85+ "p" , String ( responsecode ) ,
86+ "data-spec" , "http#" + entry . current_responsecode ,
87+ "class" , ( entry . error_in_current_response ? templates . ERROR_RESPONSE
88+ : "" ) + " response-summary"
89+ ] ;
90+ }
91+ else
92+ {
93+ var local_url_types = [
94+ cls . ResourceManager [ "1.2" ] . UrlLoad . URLType . FILE ,
95+ cls . ResourceManager [ "1.2" ] . UrlLoad . URLType . DATA
96+ ] ;
97+ response_summary = [
98+ "p" , local_url_types . contains ( entry . urltype ) ? ui_strings . S_NETWORK_NOT_REQUESTED
99+ : ui_strings . S_NETWORK_SERVED_FROM_CACHE ,
100+ "class" , templates . NOT_REQUESTED
101+ ] ;
102+ }
101103
102- templates . did_not_touch_network = function ( entry )
103- {
104- var local_url_types = [
105- cls . ResourceManager [ "1.2" ] . UrlLoad . URLType . FILE ,
106- cls . ResourceManager [ "1.2" ] . UrlLoad . URLType . DATA
104+ return [
105+ [ "p" ,
106+ [
107+ "span" , ( entry . current_request && entry . current_request . method + " " ) || ""
108+ ] ,
109+ [
110+ "span" , entry . url ,
111+ "class" , "url"
112+ ] ,
113+ "class" , "method-and-url"
114+ ] ,
115+ response_summary
107116 ] ;
108- return (
109- [ "tbody" ,
110- this . _col_or_row (
111- [ "p" , local_url_types . contains ( entry . urltype ) ? ui_strings . S_NETWORK_NOT_REQUESTED
112- : ui_strings . S_NETWORK_SERVED_FROM_CACHE ] )
113- ] ) ;
114117} ;
115118
116119templates . requests_responses = function ( do_raw , request_response , index , requests_responses )
@@ -138,9 +141,6 @@ templates._request = function(request, is_last, do_raw)
138141 // A request that's followed by another one, without a response in between,
139142 // is not shown in network-details. It will mostly mean it was retried internally
140143 // and didn't go on the network.
141- // That can't be determined only by looking at RequestRetry events, because a
142- // request with for example a 401 Authorization Required response should still
143- // be shown.
144144 if ( ! is_last && ! request . was_responded_to )
145145 return [ ] ;
146146
@@ -187,16 +187,7 @@ templates._token_receiver = function(tokens, token_type, token)
187187
188188templates . _request_headers = function ( req , do_raw )
189189{
190- /*
191- var method_str = req.method || "";
192- if (method_str)
193- method_str = " – " + method_str;
194- */
195- var headline ;
196- if ( req . request_body && req . request_body . partList && req . request_body . partList . length )
197- headline = [ "h2" , ui_strings . S_NETWORK_MULTIPART_REQUEST_TITLE /* + method_str */ ] ;
198- else
199- headline = [ "h2" , ui_strings . S_NETWORK_REQUEST_DETAIL_REQUEST_TITLE /* + method_str */ ] ;
190+ var headline = [ "h2" , ui_strings . S_NETWORK_REQUEST_DETAIL_REQUEST_TITLE ] ;
200191
201192 if ( do_raw )
202193 {
@@ -209,18 +200,18 @@ templates._request_headers = function(req, do_raw)
209200 tokenizer . tokenize ( req . request_headers_raw , this . _token_receiver . bind ( this , req . header_tokens ) ) ;
210201 }
211202
212- if ( req . header_tokens . length )
213- {
214- var data_spec_firstline_tokens = [ 0 ] ;
215- var state_holder = new cls . HTTPHeaderTokenizer . TokenStateholder ( data_spec_firstline_tokens ) ;
216- var map_func = this . _header_token_templ . bind ( this , state_holder ) ;
217- return [
218- headline ,
219- this . _pre ( req . header_tokens . map ( map_func ) )
220- ] ;
221- }
203+ var data_spec_firstline_tokens = [ 0 ] ;
204+ var state_holder = new cls . HTTPHeaderTokenizer . TokenStateholder ( data_spec_firstline_tokens ) ;
205+ var map_func = this . _header_token_templ . bind ( this , state_holder ) ;
206+ return [
207+ headline ,
208+ this . _pre ( req . header_tokens . map ( map_func ) )
209+ ] ;
222210 }
223- return [ ] ;
211+ return [
212+ headline ,
213+ ui_strings . S_NETWORK_REQUEST_NO_HEADERS_LABEL
214+ ] ;
224215 }
225216
226217 var ret = [ ] ;
@@ -230,30 +221,39 @@ templates._request_headers = function(req, do_raw)
230221 }
231222 else
232223 {
233- ret . extend ( this . headers_list ( req . request_headers ) ) ;
224+ ret . extend ( req . request_headers . map ( this . _headers_pseudo_raw ) ) ;
234225 if ( req . first_line )
235226 {
236- // todo: make nice, add speclinks
237- var classname = "mono " + cls . HTTPHeaderTokenizer . classnames [
238- cls . HTTPHeaderTokenizer . types . FIRST_LINE_PART
239- ] ;
240- ret . unshift ( [
241- "pre" , req . first_line ,
242- "class" , classname
243- ] ) ;
227+ var firstline = [ ] ;
228+ if ( ! req . firstline_tokens )
229+ {
230+ req . firstline_tokens = [ ] ;
231+ var tokenizer = new cls . HTTPHeaderTokenizer ( ) ;
232+ tokenizer . tokenize ( req . first_line , this . _token_receiver . bind ( this , req . firstline_tokens ) )
233+ }
234+
235+ if ( req . firstline_tokens . length )
236+ {
237+ var data_spec_firstline_tokens = [ 0 ] ;
238+ var state_holder = new cls . HTTPHeaderTokenizer . TokenStateholder ( data_spec_firstline_tokens ) ;
239+ var map_func = this . _header_token_templ . bind ( this , state_holder ) ;
240+ firstline = req . firstline_tokens . map ( map_func ) ;
241+ }
242+ ret . unshift ( this . _pre ( firstline ) ) ;
244243 }
245244 }
246- ret . unshift ( headline ) ;
247-
248- return [ "tbody" , ret . map ( this . _col_or_row ) ] ;
245+ return [
246+ headline ,
247+ ret
248+ ] ;
249249} ;
250250
251251templates . _response_headers = function ( resp , do_raw )
252252{
253- // Missing response headers aren't mentioned explicitely
254- if ( ! resp . response_headers )
253+ if ( ! resp . logger_entry_touched_network )
255254 return [ ] ;
256255
256+ var headline = [ "h2" , ui_strings . S_NETWORK_REQUEST_DETAIL_RESPONSE_TITLE ] ;
257257 if ( do_raw )
258258 {
259259 if ( ! resp . header_tokens )
@@ -269,49 +269,41 @@ templates._response_headers = function(resp, do_raw)
269269 var state_holder = new cls . HTTPHeaderTokenizer . TokenStateholder ( data_spec_firstline_tokens ) ;
270270 var map_func = this . _header_token_templ . bind ( this , state_holder ) ;
271271 return [
272- [ "h2" , ui_strings . S_NETWORK_REQUEST_DETAIL_RESPONSE_TITLE ] ,
272+ headline ,
273273 this . _pre ( resp . header_tokens . map ( map_func ) )
274274 ] ;
275275 }
276- return [ ] ;
276+ return [
277+ headline ,
278+ ui_strings . S_NETWORK_REQUEST_NO_HEADERS_LABEL
279+ ] ;
277280 }
278281
279- var ret = [ ] ;
280- /*
281- var responsecode = resp.responsecode || "";
282- var status_code = cls.ResourceUtil.http_status_codes[responsecode];
283- if (status_code)
284- responsecode = responsecode + " " + status_code;
285-
286- if (responsecode)
287- responsecode = " – " + responsecode;
288- */
289-
290- ret . extend ( this . headers_list ( resp . response_headers ) ) ;
282+ var ret = [ resp . response_headers . map ( this . _headers_pseudo_raw ) ] ;
291283 if ( resp . first_line )
292284 {
293- // todo: make nice, add speclinks
294- var classname = "mono " + cls . HTTPHeaderTokenizer . classnames [
295- cls . HTTPHeaderTokenizer . types . FIRST_LINE_PART
296- ] ;
297- ret . unshift ( [
298- "pre" , resp . first_line ,
299- "class" , classname
300- ] ) ;
301- }
285+ var firstline = [ ] ;
286+ if ( ! resp . firstline_tokens )
287+ {
288+ resp . firstline_tokens = [ ] ;
289+ var tokenizer = new cls . HTTPHeaderTokenizer ( ) ;
290+ tokenizer . tokenize ( resp . first_line , this . _token_receiver . bind ( this , resp . firstline_tokens ) )
291+ }
302292
303- if ( resp . logger_entry_touched_network )
304- {
305- var head = [ "h2" , ui_strings . S_NETWORK_REQUEST_DETAIL_RESPONSE_TITLE /* + responsecode */ ] ;
306- /*
307- if (responsecode)
293+ if ( resp . firstline_tokens . length )
308294 {
309- head.extend(["data-spec", "http#" + resp.responsecode]);
295+ var data_spec_firstline_tokens = [ 1 ] ;
296+ var state_holder = new cls . HTTPHeaderTokenizer . TokenStateholder ( data_spec_firstline_tokens ) ;
297+ var map_func = this . _header_token_templ . bind ( this , state_holder ) ;
298+ firstline = resp . firstline_tokens . map ( map_func ) ;
310299 }
311- */
312- ret . unshift ( head ) ;
300+ ret . unshift ( this . _pre ( firstline ) ) ;
313301 }
314- return [ "tbody" , ret . map ( this . _col_or_row ) ] ;
302+
303+ return [
304+ headline ,
305+ ret
306+ ] ;
315307} ;
316308
317309templates . _headers_pseudo_raw = function ( header )
@@ -327,21 +319,6 @@ templates._headers_pseudo_raw = function(header)
327319 return templates . _pre ( template ) ;
328320} ;
329321
330- templates . _headers = function ( header ) {
331- return [
332- [ "th" , header . name + ":" ,
333- "data-spec" , "http#" + ( header . name ) . trim ( )
334- ] ,
335- [ "td" , header . value ]
336- ] ;
337- } ;
338-
339- templates . headers_list = function ( headers , do_raw )
340- {
341- // return headers.map(do_raw ? this._headers_pseudo_raw : this._headers, this);
342- return headers . map ( this . _headers_pseudo_raw ) ;
343- } ;
344-
345322templates . param_cells = function ( name_value )
346323{
347324 var parts = name_value . replace ( / \+ / g, " " ) . split ( "=" ) ;
@@ -366,7 +343,7 @@ templates._request_body = function(req, do_raw)
366343 if ( n === 0 )
367344 ret . push ( this . _pre ( boundary , HTTP_BOUNDARY_CLASS ) ) ;
368345
369- ret . extend ( this . headers_list ( part . headerList , do_raw ) ) ;
346+ ret . extend ( part . headerList . map ( this . _headers_pseudo_raw ) ) ;
370347 ret . push ( this . _pre ( "\n" ) ) ;
371348 if ( part . content && part . content . stringData )
372349 ret . push ( this . _pre ( part . content . stringData , "mono network-body" ) ) ;
@@ -388,11 +365,14 @@ templates._request_body = function(req, do_raw)
388365 else
389366 {
390367 var parts = req . request_body . content . stringData . split ( "&" ) ;
391- ret . push ( [
368+ var rows = [ ] ;
369+ rows . push ( [
392370 [ "th" , ui_strings . S_LABEL_NETWORK_POST_DATA_NAME ] ,
393371 [ "th" , ui_strings . S_LABEL_NETWORK_POST_DATA_VALUE ]
394- ] ) ; // It's necesary to just push the outer array, because each entry will be wrapped in a row.
395- ret . extend ( parts . map ( this . param_cells ) ) ;
372+ ] ) ;
373+ rows . extend ( parts . map ( this . param_cells ) ) ;
374+ var table = [ "table" , rows ] ;
375+ ret . push ( table ) ;
396376 }
397377 }
398378 else // not multipart or form.
@@ -418,10 +398,7 @@ templates._request_body = function(req, do_raw)
418398 }
419399 }
420400
421- if ( do_raw )
422- return ret ;
423- else
424- return [ "tbody" , ret . map ( this . _col_or_row ) ] ;
401+ return ret ;
425402} ;
426403
427404
@@ -481,10 +458,7 @@ templates._response_body = function(resp, do_raw, is_last_response)
481458 if ( ret . length )
482459 ret . unshift ( this . _pre ( "\n" ) ) ;
483460
484- if ( do_raw )
485- return ret ;
486- else
487- return [ "tbody" , ret . map ( this . _col_or_row ) , "class" , classname ] ;
461+ return ret ;
488462} ;
489463
490464} ) ( window . templates . network ) ;
0 commit comments