Skip to content

Commit 4d3154f

Browse files
author
Daniel Herzog
committed
Review fixes
1 parent f5834ab commit 4d3154f

File tree

5 files changed

+113
-110
lines changed

5 files changed

+113
-110
lines changed

src/network/network_details_templates.js

Lines changed: 96 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@ window.templates.network || (window.templates.network = {});
77

88
var HTTP_BOUNDARY_CLASS = "http-token-type-boundary";
99
var TEXT_TYPES = ["markup", "script", "css", "text"];
10+
var LOCAL_URL_TYPES = [
11+
cls.ResourceManager["1.2"].UrlLoad.URLType.FILE,
12+
cls.ResourceManager["1.2"].UrlLoad.URLType.DATA
13+
];
14+
var HIGHLIGHTED_TYPES = [
15+
cls.HTTPHeaderTokenizer.types.NAME,
16+
cls.HTTPHeaderTokenizer.types.FIRST_LINE_PART
17+
];
1018

1119
templates._pre = function(content)
1220
{
@@ -37,40 +45,35 @@ templates._details_content = function(entry, do_raw)
3745

3846
templates._details_headline = function(entry)
3947
{
40-
var responsecode = entry.current_responsecode;
41-
if (responsecode && responsecode in cls.ResourceUtil.http_status_codes)
42-
responsecode = responsecode + " " + cls.ResourceUtil.http_status_codes[responsecode];
48+
var response_code = entry.current_responsecode;
49+
if (response_code && response_code in cls.ResourceUtil.http_status_codes)
50+
response_code = response_code + " " + cls.ResourceUtil.http_status_codes[response_code];
4351

4452
var response_summary = [];
45-
if (entry.touched_network && responsecode)
53+
if (entry.touched_network && response_code)
4654
{
4755
response_summary = [
48-
"p", String(responsecode),
56+
"p", String(response_code),
4957
"data-spec", "http#" + entry.current_responsecode,
5058
"class", (entry.error_in_current_response ? templates.ERROR_RESPONSE
5159
: "") + " response-summary"
5260
];
5361
}
5462
else
5563
{
56-
var local_url_types = [
57-
cls.ResourceManager["1.2"].UrlLoad.URLType.FILE,
58-
cls.ResourceManager["1.2"].UrlLoad.URLType.DATA
59-
];
6064
response_summary = [
61-
"p", local_url_types.contains(entry.urltype) ? ui_strings.S_NETWORK_NOT_REQUESTED
62-
: ui_strings.S_NETWORK_SERVED_FROM_CACHE,
65+
"p", LOCAL_URL_TYPES.contains(entry.urltype) ?
66+
ui_strings.S_NETWORK_NOT_REQUESTED : ui_strings.S_NETWORK_SERVED_FROM_CACHE,
6367
"class", templates.NOT_REQUESTED
6468
];
6569
}
6670

6771
return [
6872
["p",
69-
[
70-
"span", (entry.current_request && entry.current_request.method + " ") || ""
73+
["span",
74+
(entry.current_request && entry.current_request.method + " ") || ""
7175
],
72-
[
73-
"span", entry.url,
76+
["span", entry.url,
7477
"class", "url"
7578
],
7679
"class", "method-and-url"
@@ -112,16 +115,14 @@ templates._request = function(request, is_last, do_raw)
112115
var show_body = show_headers;
113116

114117
return [
115-
"div", [
118+
"div",
116119
show_header ? templates._headline(false, expanded) : [],
117120
["div",
118-
[
119-
show_headers ? templates._request_headers(request, do_raw) : [],
120-
show_body ? templates._request_body(request, do_raw) : []
121-
], "class", "foldable"
121+
show_headers ? templates._request_headers(request, do_raw) : [],
122+
show_body ? templates._request_body(request, do_raw) : [],
123+
"class", "foldable"
122124
],
123125
"class", (expanded ? "unfolded" : "")
124-
]
125126
];
126127
};
127128

@@ -134,22 +135,20 @@ templates._response = function(response, is_last, do_raw)
134135
var show_body = expanded;
135136

136137
return [
137-
"div", [
138+
"div",
138139
show_header ? this._headline(true, expanded) : [],
139140
["div",
140-
[
141-
show_headers ? this._response_headers(response, do_raw) : [],
142-
show_body ? this._response_body(response, do_raw, is_last) : []
143-
], "class", "foldable"
141+
show_headers ? this._response_headers(response, do_raw) : [],
142+
show_body ? this._response_body(response, do_raw, is_last) : [],
143+
"class", "foldable"
144144
],
145145
"class", (expanded ? "unfolded" : "")
146-
]
147146
];
148147
};
149148

150149
templates._headline = function(is_response, is_unfolded)
151150
{
152-
return [
151+
var headline = [
153152
"div",
154153
["input",
155154
"type", "button",
@@ -159,45 +158,15 @@ templates._headline = function(is_response, is_unfolded)
159158
: ui_strings.S_NETWORK_REQUEST_DETAIL_REQUEST_TITLE,
160159
"handler", "toggle-expand-request-response",
161160
"class", "header"
162-
].concat(is_response ? ["data-is-response", "data-is-response"] : []);
161+
];
162+
if (is_response)
163+
headline.push("data-is-response", "data-is-response");
164+
return headline;
163165
};
164166

165167
templates._header_token_templ = function(state, token)
166168
{
167-
var TYPE = 0;
168-
var STR = 1;
169-
var highlighted_types = [
170-
cls.HTTPHeaderTokenizer.types.NAME,
171-
cls.HTTPHeaderTokenizer.types.FIRST_LINE_PART
172-
];
173-
var attrs = ["class", cls.HTTPHeaderTokenizer.classnames[token[TYPE]]];
174-
175-
if (highlighted_types.indexOf(token[TYPE]) != -1)
176-
{
177-
if (token[TYPE] === cls.HTTPHeaderTokenizer.types.NAME)
178-
{
179-
attrs.extend(["data-spec", "http#" + token[STR].trim()]);
180-
}
181-
else if (token[TYPE] === cls.HTTPHeaderTokenizer.types.FIRST_LINE_PART)
182-
{
183-
if (state.data_spec_firstline_tokens.contains(state.firstline_tokens))
184-
{
185-
// Add data-spec attributes on certain firstline tokens, tracked in state
186-
attrs.extend(["data-spec", "http#" + (token[STR]).trim()]);
187-
}
188-
state.firstline_tokens++;
189-
}
190-
var buffer = state.str_buffer;
191-
var ret = [["span", token[STR]].concat(attrs)];
192-
if (buffer)
193-
{
194-
ret.unshift(buffer);
195-
state.str_buffer = "";
196-
}
197-
return ret;
198-
}
199-
state.str_buffer += token[STR];
200-
return [];
169+
201170
};
202171

203172
templates._token_receiver = function(tokens, token_type, token)
@@ -217,8 +186,7 @@ templates._request_headers = function(req, do_raw)
217186
var tokenizer = new cls.HTTPHeaderTokenizer();
218187
tokenizer.tokenize(req.request_headers_raw, this._token_receiver.bind(this, req.header_tokens));
219188
}
220-
var METHOD = 0;
221-
return this._pre(this.headers_tonkenized(req.header_tokens, [METHOD]));
189+
return this._pre(this.headers_tonkenized(req.header_tokens, false));
222190
}
223191
return ["span", ui_strings.S_NETWORK_REQUEST_NO_HEADERS_LABEL,
224192
"class", templates.UI_CLASSNAME];
@@ -245,27 +213,72 @@ templates._request_headers = function(req, do_raw)
245213

246214
if (req.firstline_tokens.length)
247215
{
248-
var METHOD = 0;
249-
ret.unshift(this.headers_tonkenized(req.firstline_tokens, [METHOD]));
216+
ret.unshift(this.headers_tonkenized(req.firstline_tokens, false));
250217
}
251218
}
252219
}
253220
return templates._pre(ret);
254221
};
255222

256-
templates._reduce_tokens = function(map_func, previous_val, current_val, index){
257-
if (index == 1)
258-
previous_val = map_func(previous_val);
259-
return previous_val.concat(map_func(current_val));
223+
templates._reduce_tokens = function(context, token, index)
224+
{
225+
var TYPE = 0;
226+
var STR = 1;
227+
var attrs = ["class", cls.HTTPHeaderTokenizer.classnames[token[TYPE]]];
228+
229+
if (HIGHLIGHTED_TYPES.contains(token[TYPE]))
230+
{
231+
if (token[TYPE] === cls.HTTPHeaderTokenizer.types.NAME)
232+
{
233+
attrs.push("data-spec", "http#" + token[STR].trim());
234+
}
235+
else if (token[TYPE] === cls.HTTPHeaderTokenizer.types.FIRST_LINE_PART)
236+
{
237+
if (context.spec_tokens.contains(context.saw_firstline_tokens))
238+
{
239+
attrs.push("data-spec", "http#" + (token[STR]).trim());
240+
}
241+
context.saw_firstline_tokens++;
242+
}
243+
if (context.str_buffer)
244+
{
245+
context.template.push(context.str_buffer);
246+
context.str_buffer = "";
247+
}
248+
context.template.push(["span", token[STR]].extend(attrs));
249+
}
250+
else
251+
context.str_buffer += token[STR];
252+
253+
return context;
254+
};
255+
256+
templates._token_to_template_context = function(is_response)
257+
{
258+
var spec_tokens;
259+
if (!is_response)
260+
{
261+
var firstline = { METHOD: 0, URI: 1, HTTP_VERSION: 2 };
262+
spec_tokens = [firstline.METHOD];
263+
}
264+
else
265+
{
266+
var firstline = { PROTOCOL: 0, RESPONSE_CODE: 1, RESPONSE_PHRASE: 2 };
267+
spec_tokens = [firstline.RESPONSE_CODE];
268+
}
269+
this.spec_tokens = spec_tokens;
270+
this.saw_firstline_tokens = 0;
271+
this.str_buffer = "";
272+
this.template = [];
260273
};
261274

262-
templates.headers_tonkenized = function(tokens, data_spec_firstline_tokens)
275+
templates.headers_tonkenized = function(tokens, is_response)
263276
{
264-
var state_holder = new cls.HTTPHeaderTokenizer.TokenStateholder(data_spec_firstline_tokens);
265-
var map_func = this._header_token_templ.bind(this, state_holder);
266-
var token_templates = tokens.reduce(this._reduce_tokens.bind(this, map_func));
267-
token_templates.push(state_holder.str_buffer);
268-
return token_templates;
277+
var context = new templates._token_to_template_context(is_response);
278+
var template = tokens.reduce(this._reduce_tokens, context).template;
279+
if (context.str_buffer)
280+
template.push(context.str_buffer);
281+
return template;
269282
};
270283

271284
templates._response_headers = function(resp, do_raw)
@@ -284,8 +297,7 @@ templates._response_headers = function(resp, do_raw)
284297

285298
if (resp.header_tokens.length)
286299
{
287-
var RESPONSECODE = 1;
288-
return this._pre(this.headers_tonkenized(resp.header_tokens, [RESPONSECODE]));
300+
return this._pre(this.headers_tonkenized(resp.header_tokens, true));
289301
}
290302
return ["span", ui_strings.S_NETWORK_REQUEST_NO_HEADERS_LABEL,
291303
"class", templates.UI_CLASSNAME];
@@ -303,10 +315,9 @@ templates._response_headers = function(resp, do_raw)
303315
}
304316

305317
if (resp.firstline_tokens.length)
306-
{
307-
ret.unshift(this.headers_tonkenized(resp.firstline_tokens, [RESPONSECODE]));
308-
}
318+
ret.unshift(this.headers_tonkenized(resp.firstline_tokens, true));
309319
}
320+
310321
if (!ret)
311322
{
312323
ret = ["span", ui_strings.S_NETWORK_REQUEST_NO_HEADERS_LABEL,
@@ -318,7 +329,7 @@ templates._response_headers = function(resp, do_raw)
318329
templates._headers_pseudo_raw = function(header)
319330
{
320331
/* Shortcutting. For raw headers, highlighted types are defined like this:
321-
var highlighted_types = [
332+
var HIGHLIGHTED_TYPES = [
322333
cls.HTTPHeaderTokenizer.types.NAME,
323334
cls.HTTPHeaderTokenizer.types.FIRST_LINE_PART
324335
];
@@ -429,7 +440,8 @@ templates._request_body = function(req, do_raw)
429440
}
430441
}
431442
}
432-
return [this._pre("\n"), templates._pre(ret)];
443+
var BODY_SEPARATOR = "\n";
444+
return [this._pre(BODY_SEPARATOR), templates._pre(ret)];
433445
};
434446

435447

src/network/network_service.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1005,7 +1005,7 @@ cls.NetworkLoggerRequestPrototype = function()
10051005
{
10061006
this.request_headers = event.headerList;
10071007
// Don't set a first_line for a SPDY request
1008-
if (event.raw && event.raw.indexOf("\n") != -1)
1008+
if (event.raw && event.raw.contains("\n"))
10091009
this.first_line = event.raw && event.raw.split("\n")[0];
10101010

10111011
for (var n = 0, header; header = this.request_headers[n]; n++)
@@ -1074,7 +1074,7 @@ cls.NetworkLoggerResponsePrototype = function()
10741074
// has been read from the socket already.
10751075
this.response_headers_raw = event.raw.split("\r\n\r\n")[0];
10761076
// Don't set a first_line for a SPDY request
1077-
if (this.response_headers_raw && this.response_headers_raw.indexOf("\n") != -1)
1077+
if (this.response_headers_raw && this.response_headers_raw.contains("\n"))
10781078
this.first_line = this.response_headers_raw.split("\n")[0];
10791079
};
10801080

src/network/network_style.css

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -322,11 +322,6 @@
322322
max-width: 100%;
323323
}
324324

325-
.network-detail-overlay p
326-
{
327-
font: 11px "menu";
328-
}
329-
330325
.network-detail-overlay table
331326
{
332327
border-collapse: collapse;
@@ -377,7 +372,7 @@
377372
.network-options h2
378373
{
379374
font-size: 125%;
380-
padding: 10px 0 5px 0;
375+
padding: 10px 0 5px;
381376
}
382377

383378
.network_logger .network-main-container .sortable-table .network-graph-column

0 commit comments

Comments
 (0)