| 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 |