OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. |
3 * Copyright (C) IBM Corp. 2009 All rights reserved. | 3 * Copyright (C) IBM Corp. 2009 All rights reserved. |
4 * Copyright (C) 2010 Google Inc. All rights reserved. | 4 * Copyright (C) 2010 Google Inc. All rights reserved. |
5 * | 5 * |
6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
8 * are met: | 8 * are met: |
9 * | 9 * |
10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
(...skipping 26 matching lines...) Expand all Loading... |
37 { | 37 { |
38 WebInspector.VBox.call(this); | 38 WebInspector.VBox.call(this); |
39 this.registerRequiredCSS("network/requestHeadersView.css"); | 39 this.registerRequiredCSS("network/requestHeadersView.css"); |
40 this.element.classList.add("request-headers-view"); | 40 this.element.classList.add("request-headers-view"); |
41 | 41 |
42 this._request = request; | 42 this._request = request; |
43 this._decodeRequestParameters = true; | 43 this._decodeRequestParameters = true; |
44 this._showRequestHeadersText = false; | 44 this._showRequestHeadersText = false; |
45 this._showResponseHeadersText = false; | 45 this._showResponseHeadersText = false; |
46 | 46 |
47 this._requestHeaderFilterSetting = WebInspector.settings.createSetting("requ
estHeaderFilterSetting", ""); | |
48 | |
49 /** @type {?RegExp} */ | |
50 this._filterRegex = null; | |
51 if (Runtime.experiments.isEnabled("networkRequestHeadersFilterInDetailsView"
)) { | |
52 this._filterInput = this.element.createChild("input", "filter-input"); | |
53 this._filterInput.type = "text"; | |
54 this._filterInput.placeholder = WebInspector.UIString("Filter headers"); | |
55 this._filterInput.addEventListener("input", this._updateFilter.bind(this
), false); | |
56 this._filterInput.addEventListener("keydown", this._onFilterKeyDown.bind
(this), false); | |
57 this._filterInput.value = this._requestHeaderFilterSetting.get() || ""; | |
58 } | |
59 | |
60 var root = new TreeOutline(true); | 47 var root = new TreeOutline(true); |
61 root.element.classList.add("outline-disclosure"); | 48 root.element.classList.add("outline-disclosure"); |
62 root.expandTreeElementsWhenArrowing = true; | 49 root.expandTreeElementsWhenArrowing = true; |
63 this.element.appendChild(root.element); | 50 this.element.appendChild(root.element); |
64 | 51 |
65 var generalCategory = new WebInspector.RequestHeadersView.Category(root, "ge
neral", WebInspector.UIString("General")); | 52 var generalCategory = new WebInspector.RequestHeadersView.Category(root, "ge
neral", WebInspector.UIString("General")); |
66 generalCategory.hidden = false; | 53 generalCategory.hidden = false; |
67 this._urlItem = generalCategory.createLeaf(); | 54 this._urlItem = generalCategory.createLeaf(); |
68 this._requestMethodItem = generalCategory.createLeaf(); | 55 this._requestMethodItem = generalCategory.createLeaf(); |
69 this._statusCodeItem = generalCategory.createLeaf(); | 56 this._statusCodeItem = generalCategory.createLeaf(); |
70 this._remoteAddressItem = generalCategory.createLeaf(); | 57 this._remoteAddressItem = generalCategory.createLeaf(); |
71 this._remoteAddressItem.hidden = true; | 58 this._remoteAddressItem.hidden = true; |
72 | 59 |
73 this._responseHeadersCategory = new WebInspector.RequestHeadersView.Category
(root, "responseHeaders", ""); | 60 this._responseHeadersCategory = new WebInspector.RequestHeadersView.Category
(root, "responseHeaders", ""); |
74 this._requestHeadersCategory = new WebInspector.RequestHeadersView.Category(
root, "requestHeaders", ""); | 61 this._requestHeadersCategory = new WebInspector.RequestHeadersView.Category(
root, "requestHeaders", ""); |
75 this._queryStringCategory = new WebInspector.RequestHeadersView.Category(roo
t, "queryString", ""); | 62 this._queryStringCategory = new WebInspector.RequestHeadersView.Category(roo
t, "queryString", ""); |
76 this._formDataCategory = new WebInspector.RequestHeadersView.Category(root,
"formData", ""); | 63 this._formDataCategory = new WebInspector.RequestHeadersView.Category(root,
"formData", ""); |
77 this._requestPayloadCategory = new WebInspector.RequestHeadersView.Category(
root, "requestPayload", WebInspector.UIString("Request Payload")); | 64 this._requestPayloadCategory = new WebInspector.RequestHeadersView.Category(
root, "requestPayload", WebInspector.UIString("Request Payload")); |
78 | |
79 | |
80 if (Runtime.experiments.isEnabled("networkRequestHeadersFilterInDetailsView"
)) { | |
81 this._updateFilter(); | |
82 } | |
83 } | 65 } |
84 | 66 |
85 WebInspector.RequestHeadersView.prototype = { | 67 WebInspector.RequestHeadersView.prototype = { |
86 _updateFilter: function() | |
87 { | |
88 var text = this._filterInput.value; | |
89 this._requestHeaderFilterSetting.set(text); | |
90 this._filterRegex = text ? new RegExp(text.escapeForRegExp(), "i") : nul
l; | |
91 this._updateHeaders(); | |
92 }, | |
93 | |
94 /** | |
95 * @param {!Event} event | |
96 */ | |
97 _onFilterKeyDown: function(event) | |
98 { | |
99 var text = this._filterInput.value; | |
100 if (!text) | |
101 return; | |
102 if (event.keyCode === WebInspector.KeyboardShortcut.Keys.Esc.code || eve
nt.keyIdentifier === "U+001B") { | |
103 event.consume(true); | |
104 this._filterInput.value = ""; | |
105 this._updateFilter(); | |
106 } | |
107 }, | |
108 | |
109 _updateHeaders: function() | |
110 { | |
111 this._refreshRequestHeaders(); | |
112 this._refreshResponseHeaders(); | |
113 }, | |
114 | |
115 wasShown: function() | 68 wasShown: function() |
116 { | 69 { |
117 this._request.addEventListener(WebInspector.NetworkRequest.Events.Remote
AddressChanged, this._refreshRemoteAddress, this); | 70 this._request.addEventListener(WebInspector.NetworkRequest.Events.Remote
AddressChanged, this._refreshRemoteAddress, this); |
118 this._request.addEventListener(WebInspector.NetworkRequest.Events.Reques
tHeadersChanged, this._refreshRequestHeaders, this); | 71 this._request.addEventListener(WebInspector.NetworkRequest.Events.Reques
tHeadersChanged, this._refreshRequestHeaders, this); |
119 this._request.addEventListener(WebInspector.NetworkRequest.Events.Respon
seHeadersChanged, this._refreshResponseHeaders, this); | 72 this._request.addEventListener(WebInspector.NetworkRequest.Events.Respon
seHeadersChanged, this._refreshResponseHeaders, this); |
120 this._request.addEventListener(WebInspector.NetworkRequest.Events.Finish
edLoading, this._refreshHTTPInformation, this); | 73 this._request.addEventListener(WebInspector.NetworkRequest.Events.Finish
edLoading, this._refreshHTTPInformation, this); |
121 | 74 |
122 this._refreshURL(); | 75 this._refreshURL(); |
123 this._refreshQueryString(); | 76 this._refreshQueryString(); |
124 this._updateHeaders(); | 77 this._refreshRequestHeaders(); |
| 78 this._refreshResponseHeaders(); |
125 this._refreshHTTPInformation(); | 79 this._refreshHTTPInformation(); |
126 this._refreshRemoteAddress(); | 80 this._refreshRemoteAddress(); |
127 }, | 81 }, |
128 | 82 |
129 willHide: function() | 83 willHide: function() |
130 { | 84 { |
131 this._request.removeEventListener(WebInspector.NetworkRequest.Events.Rem
oteAddressChanged, this._refreshRemoteAddress, this); | 85 this._request.removeEventListener(WebInspector.NetworkRequest.Events.Rem
oteAddressChanged, this._refreshRemoteAddress, this); |
132 this._request.removeEventListener(WebInspector.NetworkRequest.Events.Req
uestHeadersChanged, this._refreshRequestHeaders, this); | 86 this._request.removeEventListener(WebInspector.NetworkRequest.Events.Req
uestHeadersChanged, this._refreshRequestHeaders, this); |
133 this._request.removeEventListener(WebInspector.NetworkRequest.Events.Res
ponseHeadersChanged, this._refreshResponseHeaders, this); | 87 this._request.removeEventListener(WebInspector.NetworkRequest.Events.Res
ponseHeadersChanged, this._refreshResponseHeaders, this); |
134 this._request.removeEventListener(WebInspector.NetworkRequest.Events.Fin
ishedLoading, this._refreshHTTPInformation, this); | 88 this._request.removeEventListener(WebInspector.NetworkRequest.Events.Fin
ishedLoading, this._refreshHTTPInformation, this); |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
338 { | 292 { |
339 this._decodeRequestParameters = !this._decodeRequestParameters; | 293 this._decodeRequestParameters = !this._decodeRequestParameters; |
340 this._refreshQueryString(); | 294 this._refreshQueryString(); |
341 this._refreshFormData(); | 295 this._refreshFormData(); |
342 event.consume(); | 296 event.consume(); |
343 }, | 297 }, |
344 | 298 |
345 _refreshRequestHeaders: function() | 299 _refreshRequestHeaders: function() |
346 { | 300 { |
347 var treeElement = this._requestHeadersCategory; | 301 var treeElement = this._requestHeadersCategory; |
348 | |
349 var headers = this._request.requestHeaders().slice(); | 302 var headers = this._request.requestHeaders().slice(); |
350 var filterRegex = this._filterRegex; | |
351 if (filterRegex) | |
352 headers = headers.filter(function(header) { return filterRegex.test(
header.name) || filterRegex.test(header.value);}); | |
353 headers.sort(function(a, b) { return a.name.toLowerCase().compareTo(b.na
me.toLowerCase()); }); | 303 headers.sort(function(a, b) { return a.name.toLowerCase().compareTo(b.na
me.toLowerCase()); }); |
354 var headersText = this._request.requestHeadersText(); | 304 var headersText = this._request.requestHeadersText(); |
355 | 305 |
356 if (this._showRequestHeadersText && headersText) | 306 if (this._showRequestHeadersText && headersText) |
357 this._refreshHeadersText(WebInspector.UIString("Request Headers"), h
eaders.length, headersText, treeElement); | 307 this._refreshHeadersText(WebInspector.UIString("Request Headers"), h
eaders.length, headersText, treeElement); |
358 else | 308 else |
359 this._refreshHeaders(WebInspector.UIString("Request Headers"), heade
rs, treeElement, headersText === undefined); | 309 this._refreshHeaders(WebInspector.UIString("Request Headers"), heade
rs, treeElement, headersText === undefined); |
360 | 310 |
361 if (headersText) { | 311 if (headersText) { |
362 var toggleButton = this._createHeadersToggleButton(this._showRequest
HeadersText); | 312 var toggleButton = this._createHeadersToggleButton(this._showRequest
HeadersText); |
363 toggleButton.addEventListener("click", this._toggleRequestHeadersTex
t.bind(this), false); | 313 toggleButton.addEventListener("click", this._toggleRequestHeadersTex
t.bind(this), false); |
364 treeElement.listItemElement.appendChild(toggleButton); | 314 treeElement.listItemElement.appendChild(toggleButton); |
365 } | 315 } |
366 | 316 |
367 this._refreshFormData(); | 317 this._refreshFormData(); |
368 }, | 318 }, |
369 | 319 |
370 _refreshResponseHeaders: function() | 320 _refreshResponseHeaders: function() |
371 { | 321 { |
372 var treeElement = this._responseHeadersCategory; | 322 var treeElement = this._responseHeadersCategory; |
373 var headers = this._request.sortedResponseHeaders.slice(); | 323 var headers = this._request.sortedResponseHeaders.slice(); |
374 var filterRegex = this._filterRegex; | |
375 if (filterRegex) | |
376 headers = headers.filter(function(header) { return filterRegex.test(
header.name) || filterRegex.test(header.value);}); | |
377 var headersText = this._request.responseHeadersText; | 324 var headersText = this._request.responseHeadersText; |
378 | 325 |
379 if (this._showResponseHeadersText) | 326 if (this._showResponseHeadersText) |
380 this._refreshHeadersText(WebInspector.UIString("Response Headers"),
headers.length, headersText, treeElement); | 327 this._refreshHeadersText(WebInspector.UIString("Response Headers"),
headers.length, headersText, treeElement); |
381 else | 328 else |
382 this._refreshHeaders(WebInspector.UIString("Response Headers"), head
ers, treeElement); | 329 this._refreshHeaders(WebInspector.UIString("Response Headers"), head
ers, treeElement); |
383 | 330 |
384 if (headersText) { | 331 if (headersText) { |
385 var toggleButton = this._createHeadersToggleButton(this._showRespons
eHeadersText); | 332 var toggleButton = this._createHeadersToggleButton(this._showRespons
eHeadersText); |
386 toggleButton.addEventListener("click", this._toggleResponseHeadersTe
xt.bind(this), false); | 333 toggleButton.addEventListener("click", this._toggleResponseHeadersTe
xt.bind(this), false); |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
571 this._expandedSetting.set(true); | 518 this._expandedSetting.set(true); |
572 }, | 519 }, |
573 | 520 |
574 oncollapse: function() | 521 oncollapse: function() |
575 { | 522 { |
576 this._expandedSetting.set(false); | 523 this._expandedSetting.set(false); |
577 }, | 524 }, |
578 | 525 |
579 __proto__: TreeElement.prototype | 526 __proto__: TreeElement.prototype |
580 } | 527 } |
OLD | NEW |