| 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 13 matching lines...) Expand all Loading... |
| 24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| 25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
| 26 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
| 28 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 */ | 29 */ |
| 30 | 30 |
| 31 /** | 31 /** |
| 32 * @unrestricted | 32 * @unrestricted |
| 33 */ | 33 */ |
| 34 WebInspector.RequestHeadersView = class extends WebInspector.VBox { | 34 Network.RequestHeadersView = class extends UI.VBox { |
| 35 /** | 35 /** |
| 36 * @param {!WebInspector.NetworkRequest} request | 36 * @param {!SDK.NetworkRequest} request |
| 37 */ | 37 */ |
| 38 constructor(request) { | 38 constructor(request) { |
| 39 super(); | 39 super(); |
| 40 this.registerRequiredCSS('network/requestHeadersView.css'); | 40 this.registerRequiredCSS('network/requestHeadersView.css'); |
| 41 this.element.classList.add('request-headers-view'); | 41 this.element.classList.add('request-headers-view'); |
| 42 | 42 |
| 43 this._request = request; | 43 this._request = request; |
| 44 this._decodeRequestParameters = true; | 44 this._decodeRequestParameters = true; |
| 45 this._showRequestHeadersText = false; | 45 this._showRequestHeadersText = false; |
| 46 this._showResponseHeadersText = false; | 46 this._showResponseHeadersText = false; |
| 47 | 47 |
| 48 var root = new TreeOutlineInShadow(); | 48 var root = new TreeOutlineInShadow(); |
| 49 root.registerRequiredCSS('network/requestHeadersTree.css'); | 49 root.registerRequiredCSS('network/requestHeadersTree.css'); |
| 50 root.element.classList.add('request-headers-tree'); | 50 root.element.classList.add('request-headers-tree'); |
| 51 root.setFocusable(false); | 51 root.setFocusable(false); |
| 52 root.makeDense(); | 52 root.makeDense(); |
| 53 root.expandTreeElementsWhenArrowing = true; | 53 root.expandTreeElementsWhenArrowing = true; |
| 54 this.element.appendChild(root.element); | 54 this.element.appendChild(root.element); |
| 55 | 55 |
| 56 var generalCategory = | 56 var generalCategory = |
| 57 new WebInspector.RequestHeadersView.Category(root, 'general', WebInspect
or.UIString('General')); | 57 new Network.RequestHeadersView.Category(root, 'general', Common.UIString
('General')); |
| 58 generalCategory.hidden = false; | 58 generalCategory.hidden = false; |
| 59 this._urlItem = generalCategory.createLeaf(); | 59 this._urlItem = generalCategory.createLeaf(); |
| 60 this._requestMethodItem = generalCategory.createLeaf(); | 60 this._requestMethodItem = generalCategory.createLeaf(); |
| 61 this._statusCodeItem = generalCategory.createLeaf(); | 61 this._statusCodeItem = generalCategory.createLeaf(); |
| 62 this._remoteAddressItem = generalCategory.createLeaf(); | 62 this._remoteAddressItem = generalCategory.createLeaf(); |
| 63 this._remoteAddressItem.hidden = true; | 63 this._remoteAddressItem.hidden = true; |
| 64 | 64 |
| 65 this._responseHeadersCategory = new WebInspector.RequestHeadersView.Category
(root, 'responseHeaders', ''); | 65 this._responseHeadersCategory = new Network.RequestHeadersView.Category(root
, 'responseHeaders', ''); |
| 66 this._requestHeadersCategory = new WebInspector.RequestHeadersView.Category(
root, 'requestHeaders', ''); | 66 this._requestHeadersCategory = new Network.RequestHeadersView.Category(root,
'requestHeaders', ''); |
| 67 this._queryStringCategory = new WebInspector.RequestHeadersView.Category(roo
t, 'queryString', ''); | 67 this._queryStringCategory = new Network.RequestHeadersView.Category(root, 'q
ueryString', ''); |
| 68 this._formDataCategory = new WebInspector.RequestHeadersView.Category(root,
'formData', ''); | 68 this._formDataCategory = new Network.RequestHeadersView.Category(root, 'form
Data', ''); |
| 69 this._requestPayloadCategory = | 69 this._requestPayloadCategory = |
| 70 new WebInspector.RequestHeadersView.Category(root, 'requestPayload', Web
Inspector.UIString('Request Payload')); | 70 new Network.RequestHeadersView.Category(root, 'requestPayload', Common.U
IString('Request Payload')); |
| 71 } | 71 } |
| 72 | 72 |
| 73 /** | 73 /** |
| 74 * @override | 74 * @override |
| 75 */ | 75 */ |
| 76 wasShown() { | 76 wasShown() { |
| 77 this._request.addEventListener( | 77 this._request.addEventListener( |
| 78 WebInspector.NetworkRequest.Events.RemoteAddressChanged, this._refreshRe
moteAddress, this); | 78 SDK.NetworkRequest.Events.RemoteAddressChanged, this._refreshRemoteAddre
ss, this); |
| 79 this._request.addEventListener( | 79 this._request.addEventListener( |
| 80 WebInspector.NetworkRequest.Events.RequestHeadersChanged, this._refreshR
equestHeaders, this); | 80 SDK.NetworkRequest.Events.RequestHeadersChanged, this._refreshRequestHea
ders, this); |
| 81 this._request.addEventListener( | 81 this._request.addEventListener( |
| 82 WebInspector.NetworkRequest.Events.ResponseHeadersChanged, this._refresh
ResponseHeaders, this); | 82 SDK.NetworkRequest.Events.ResponseHeadersChanged, this._refreshResponseH
eaders, this); |
| 83 this._request.addEventListener( | 83 this._request.addEventListener( |
| 84 WebInspector.NetworkRequest.Events.FinishedLoading, this._refreshHTTPInf
ormation, this); | 84 SDK.NetworkRequest.Events.FinishedLoading, this._refreshHTTPInformation,
this); |
| 85 | 85 |
| 86 this._refreshURL(); | 86 this._refreshURL(); |
| 87 this._refreshQueryString(); | 87 this._refreshQueryString(); |
| 88 this._refreshRequestHeaders(); | 88 this._refreshRequestHeaders(); |
| 89 this._refreshResponseHeaders(); | 89 this._refreshResponseHeaders(); |
| 90 this._refreshHTTPInformation(); | 90 this._refreshHTTPInformation(); |
| 91 this._refreshRemoteAddress(); | 91 this._refreshRemoteAddress(); |
| 92 } | 92 } |
| 93 | 93 |
| 94 /** | 94 /** |
| 95 * @override | 95 * @override |
| 96 */ | 96 */ |
| 97 willHide() { | 97 willHide() { |
| 98 this._request.removeEventListener( | 98 this._request.removeEventListener( |
| 99 WebInspector.NetworkRequest.Events.RemoteAddressChanged, this._refreshRe
moteAddress, this); | 99 SDK.NetworkRequest.Events.RemoteAddressChanged, this._refreshRemoteAddre
ss, this); |
| 100 this._request.removeEventListener( | 100 this._request.removeEventListener( |
| 101 WebInspector.NetworkRequest.Events.RequestHeadersChanged, this._refreshR
equestHeaders, this); | 101 SDK.NetworkRequest.Events.RequestHeadersChanged, this._refreshRequestHea
ders, this); |
| 102 this._request.removeEventListener( | 102 this._request.removeEventListener( |
| 103 WebInspector.NetworkRequest.Events.ResponseHeadersChanged, this._refresh
ResponseHeaders, this); | 103 SDK.NetworkRequest.Events.ResponseHeadersChanged, this._refreshResponseH
eaders, this); |
| 104 this._request.removeEventListener( | 104 this._request.removeEventListener( |
| 105 WebInspector.NetworkRequest.Events.FinishedLoading, this._refreshHTTPInf
ormation, this); | 105 SDK.NetworkRequest.Events.FinishedLoading, this._refreshHTTPInformation,
this); |
| 106 } | 106 } |
| 107 | 107 |
| 108 /** | 108 /** |
| 109 * @param {string} name | 109 * @param {string} name |
| 110 * @param {string} value | 110 * @param {string} value |
| 111 * @return {!DocumentFragment} | 111 * @return {!DocumentFragment} |
| 112 */ | 112 */ |
| 113 _formatHeader(name, value) { | 113 _formatHeader(name, value) { |
| 114 var fragment = createDocumentFragment(); | 114 var fragment = createDocumentFragment(); |
| 115 fragment.createChild('div', 'header-name').textContent = name + ':'; | 115 fragment.createChild('div', 'header-name').textContent = name + ':'; |
| (...skipping 18 matching lines...) Expand all Loading... |
| 134 value = decodeURIComponent(value); | 134 value = decodeURIComponent(value); |
| 135 } catch (e) { | 135 } catch (e) { |
| 136 errorDecoding = true; | 136 errorDecoding = true; |
| 137 } | 137 } |
| 138 } | 138 } |
| 139 } | 139 } |
| 140 var div = createElementWithClass('div', className); | 140 var div = createElementWithClass('div', className); |
| 141 if (value === '') | 141 if (value === '') |
| 142 div.classList.add('empty-value'); | 142 div.classList.add('empty-value'); |
| 143 if (errorDecoding) | 143 if (errorDecoding) |
| 144 div.createChild('span', 'header-decode-error').textContent = WebInspector.
UIString('(unable to decode value)'); | 144 div.createChild('span', 'header-decode-error').textContent = Common.UIStri
ng('(unable to decode value)'); |
| 145 else | 145 else |
| 146 div.textContent = value; | 146 div.textContent = value; |
| 147 return div; | 147 return div; |
| 148 } | 148 } |
| 149 | 149 |
| 150 _refreshURL() { | 150 _refreshURL() { |
| 151 this._urlItem.title = this._formatHeader(WebInspector.UIString('Request URL'
), this._request.url); | 151 this._urlItem.title = this._formatHeader(Common.UIString('Request URL'), thi
s._request.url); |
| 152 } | 152 } |
| 153 | 153 |
| 154 _refreshQueryString() { | 154 _refreshQueryString() { |
| 155 var queryString = this._request.queryString(); | 155 var queryString = this._request.queryString(); |
| 156 var queryParameters = this._request.queryParameters; | 156 var queryParameters = this._request.queryParameters; |
| 157 this._queryStringCategory.hidden = !queryParameters; | 157 this._queryStringCategory.hidden = !queryParameters; |
| 158 if (queryParameters) | 158 if (queryParameters) |
| 159 this._refreshParams( | 159 this._refreshParams( |
| 160 WebInspector.UIString('Query String Parameters'), queryParameters, que
ryString, this._queryStringCategory); | 160 Common.UIString('Query String Parameters'), queryParameters, queryStri
ng, this._queryStringCategory); |
| 161 } | 161 } |
| 162 | 162 |
| 163 _refreshFormData() { | 163 _refreshFormData() { |
| 164 this._formDataCategory.hidden = true; | 164 this._formDataCategory.hidden = true; |
| 165 this._requestPayloadCategory.hidden = true; | 165 this._requestPayloadCategory.hidden = true; |
| 166 | 166 |
| 167 var formData = this._request.requestFormData; | 167 var formData = this._request.requestFormData; |
| 168 if (!formData) | 168 if (!formData) |
| 169 return; | 169 return; |
| 170 | 170 |
| 171 var formParameters = this._request.formParameters; | 171 var formParameters = this._request.formParameters; |
| 172 if (formParameters) { | 172 if (formParameters) { |
| 173 this._formDataCategory.hidden = false; | 173 this._formDataCategory.hidden = false; |
| 174 this._refreshParams(WebInspector.UIString('Form Data'), formParameters, fo
rmData, this._formDataCategory); | 174 this._refreshParams(Common.UIString('Form Data'), formParameters, formData
, this._formDataCategory); |
| 175 } else { | 175 } else { |
| 176 this._requestPayloadCategory.hidden = false; | 176 this._requestPayloadCategory.hidden = false; |
| 177 try { | 177 try { |
| 178 var json = JSON.parse(formData); | 178 var json = JSON.parse(formData); |
| 179 this._refreshRequestJSONPayload(json, formData); | 179 this._refreshRequestJSONPayload(json, formData); |
| 180 } catch (e) { | 180 } catch (e) { |
| 181 this._populateTreeElementWithSourceText(this._requestPayloadCategory, fo
rmData); | 181 this._populateTreeElementWithSourceText(this._requestPayloadCategory, fo
rmData); |
| 182 } | 182 } |
| 183 } | 183 } |
| 184 } | 184 } |
| 185 | 185 |
| 186 /** | 186 /** |
| 187 * @param {!TreeElement} treeElement | 187 * @param {!TreeElement} treeElement |
| 188 * @param {?string} sourceText | 188 * @param {?string} sourceText |
| 189 */ | 189 */ |
| 190 _populateTreeElementWithSourceText(treeElement, sourceText) { | 190 _populateTreeElementWithSourceText(treeElement, sourceText) { |
| 191 var sourceTextElement = createElementWithClass('span', 'header-value source-
code'); | 191 var sourceTextElement = createElementWithClass('span', 'header-value source-
code'); |
| 192 sourceTextElement.textContent = String(sourceText || '').trim(); | 192 sourceTextElement.textContent = String(sourceText || '').trim(); |
| 193 | 193 |
| 194 var sourceTreeElement = new TreeElement(sourceTextElement); | 194 var sourceTreeElement = new TreeElement(sourceTextElement); |
| 195 sourceTreeElement.selectable = false; | 195 sourceTreeElement.selectable = false; |
| 196 treeElement.removeChildren(); | 196 treeElement.removeChildren(); |
| 197 treeElement.appendChild(sourceTreeElement); | 197 treeElement.appendChild(sourceTreeElement); |
| 198 } | 198 } |
| 199 | 199 |
| 200 /** | 200 /** |
| 201 * @param {string} title | 201 * @param {string} title |
| 202 * @param {?Array.<!WebInspector.NetworkRequest.NameValue>} params | 202 * @param {?Array.<!SDK.NetworkRequest.NameValue>} params |
| 203 * @param {?string} sourceText | 203 * @param {?string} sourceText |
| 204 * @param {!TreeElement} paramsTreeElement | 204 * @param {!TreeElement} paramsTreeElement |
| 205 */ | 205 */ |
| 206 _refreshParams(title, params, sourceText, paramsTreeElement) { | 206 _refreshParams(title, params, sourceText, paramsTreeElement) { |
| 207 paramsTreeElement.removeChildren(); | 207 paramsTreeElement.removeChildren(); |
| 208 | 208 |
| 209 paramsTreeElement.listItemElement.removeChildren(); | 209 paramsTreeElement.listItemElement.removeChildren(); |
| 210 paramsTreeElement.listItemElement.createTextChild(title); | 210 paramsTreeElement.listItemElement.createTextChild(title); |
| 211 | 211 |
| 212 var headerCount = createElementWithClass('span', 'header-count'); | 212 var headerCount = createElementWithClass('span', 'header-count'); |
| 213 headerCount.textContent = WebInspector.UIString('\u00A0(%d)', params.length)
; | 213 headerCount.textContent = Common.UIString('\u00A0(%d)', params.length); |
| 214 paramsTreeElement.listItemElement.appendChild(headerCount); | 214 paramsTreeElement.listItemElement.appendChild(headerCount); |
| 215 | 215 |
| 216 /** | 216 /** |
| 217 * @param {!Event} event | 217 * @param {!Event} event |
| 218 * @this {WebInspector.RequestHeadersView} | 218 * @this {Network.RequestHeadersView} |
| 219 */ | 219 */ |
| 220 function toggleViewSource(event) { | 220 function toggleViewSource(event) { |
| 221 paramsTreeElement._viewSource = !paramsTreeElement._viewSource; | 221 paramsTreeElement._viewSource = !paramsTreeElement._viewSource; |
| 222 this._refreshParams(title, params, sourceText, paramsTreeElement); | 222 this._refreshParams(title, params, sourceText, paramsTreeElement); |
| 223 event.consume(); | 223 event.consume(); |
| 224 } | 224 } |
| 225 | 225 |
| 226 paramsTreeElement.listItemElement.appendChild( | 226 paramsTreeElement.listItemElement.appendChild( |
| 227 this._createViewSourceToggle(paramsTreeElement._viewSource, toggleViewSo
urce.bind(this))); | 227 this._createViewSourceToggle(paramsTreeElement._viewSource, toggleViewSo
urce.bind(this))); |
| 228 | 228 |
| 229 if (paramsTreeElement._viewSource) { | 229 if (paramsTreeElement._viewSource) { |
| 230 this._populateTreeElementWithSourceText(paramsTreeElement, sourceText); | 230 this._populateTreeElementWithSourceText(paramsTreeElement, sourceText); |
| 231 return; | 231 return; |
| 232 } | 232 } |
| 233 | 233 |
| 234 var toggleTitle = this._decodeRequestParameters ? WebInspector.UIString('vie
w URL encoded') : | 234 var toggleTitle = this._decodeRequestParameters ? Common.UIString('view URL
encoded') : |
| 235 WebInspector.UIString('vie
w decoded'); | 235 Common.UIString('view deco
ded'); |
| 236 var toggleButton = this._createToggleButton(toggleTitle); | 236 var toggleButton = this._createToggleButton(toggleTitle); |
| 237 toggleButton.addEventListener('click', this._toggleURLDecoding.bind(this), f
alse); | 237 toggleButton.addEventListener('click', this._toggleURLDecoding.bind(this), f
alse); |
| 238 paramsTreeElement.listItemElement.appendChild(toggleButton); | 238 paramsTreeElement.listItemElement.appendChild(toggleButton); |
| 239 | 239 |
| 240 for (var i = 0; i < params.length; ++i) { | 240 for (var i = 0; i < params.length; ++i) { |
| 241 var paramNameValue = createDocumentFragment(); | 241 var paramNameValue = createDocumentFragment(); |
| 242 if (params[i].name !== '') { | 242 if (params[i].name !== '') { |
| 243 var name = this._formatParameter(params[i].name + ':', 'header-name', th
is._decodeRequestParameters); | 243 var name = this._formatParameter(params[i].name + ':', 'header-name', th
is._decodeRequestParameters); |
| 244 var value = this._formatParameter(params[i].value, 'header-value source-
code', this._decodeRequestParameters); | 244 var value = this._formatParameter(params[i].value, 'header-value source-
code', this._decodeRequestParameters); |
| 245 paramNameValue.appendChild(name); | 245 paramNameValue.appendChild(name); |
| 246 paramNameValue.appendChild(value); | 246 paramNameValue.appendChild(value); |
| 247 } else { | 247 } else { |
| 248 paramNameValue.appendChild(this._formatParameter( | 248 paramNameValue.appendChild(this._formatParameter( |
| 249 WebInspector.UIString('(empty)'), 'empty-request-header', this._deco
deRequestParameters)); | 249 Common.UIString('(empty)'), 'empty-request-header', this._decodeRequ
estParameters)); |
| 250 } | 250 } |
| 251 | 251 |
| 252 var paramTreeElement = new TreeElement(paramNameValue); | 252 var paramTreeElement = new TreeElement(paramNameValue); |
| 253 paramTreeElement.selectable = false; | 253 paramTreeElement.selectable = false; |
| 254 paramsTreeElement.appendChild(paramTreeElement); | 254 paramsTreeElement.appendChild(paramTreeElement); |
| 255 } | 255 } |
| 256 } | 256 } |
| 257 | 257 |
| 258 /** | 258 /** |
| 259 * @param {*} parsedObject | 259 * @param {*} parsedObject |
| 260 * @param {string} sourceText | 260 * @param {string} sourceText |
| 261 */ | 261 */ |
| 262 _refreshRequestJSONPayload(parsedObject, sourceText) { | 262 _refreshRequestJSONPayload(parsedObject, sourceText) { |
| 263 var treeElement = this._requestPayloadCategory; | 263 var treeElement = this._requestPayloadCategory; |
| 264 treeElement.removeChildren(); | 264 treeElement.removeChildren(); |
| 265 | 265 |
| 266 var listItem = this._requestPayloadCategory.listItemElement; | 266 var listItem = this._requestPayloadCategory.listItemElement; |
| 267 listItem.removeChildren(); | 267 listItem.removeChildren(); |
| 268 listItem.createTextChild(this._requestPayloadCategory.title); | 268 listItem.createTextChild(this._requestPayloadCategory.title); |
| 269 | 269 |
| 270 /** | 270 /** |
| 271 * @param {!Event} event | 271 * @param {!Event} event |
| 272 * @this {WebInspector.RequestHeadersView} | 272 * @this {Network.RequestHeadersView} |
| 273 */ | 273 */ |
| 274 function toggleViewSource(event) { | 274 function toggleViewSource(event) { |
| 275 treeElement._viewSource = !treeElement._viewSource; | 275 treeElement._viewSource = !treeElement._viewSource; |
| 276 this._refreshRequestJSONPayload(parsedObject, sourceText); | 276 this._refreshRequestJSONPayload(parsedObject, sourceText); |
| 277 event.consume(); | 277 event.consume(); |
| 278 } | 278 } |
| 279 | 279 |
| 280 listItem.appendChild(this._createViewSourceToggle(treeElement._viewSource, t
oggleViewSource.bind(this))); | 280 listItem.appendChild(this._createViewSourceToggle(treeElement._viewSource, t
oggleViewSource.bind(this))); |
| 281 if (treeElement._viewSource) { | 281 if (treeElement._viewSource) { |
| 282 this._populateTreeElementWithSourceText(this._requestPayloadCategory, sour
ceText); | 282 this._populateTreeElementWithSourceText(this._requestPayloadCategory, sour
ceText); |
| 283 } else { | 283 } else { |
| 284 var object = WebInspector.RemoteObject.fromLocalObject(parsedObject); | 284 var object = SDK.RemoteObject.fromLocalObject(parsedObject); |
| 285 var section = new WebInspector.ObjectPropertiesSection(object, object.desc
ription); | 285 var section = new Components.ObjectPropertiesSection(object, object.descri
ption); |
| 286 section.expand(); | 286 section.expand(); |
| 287 section.editable = false; | 287 section.editable = false; |
| 288 treeElement.appendChild(new TreeElement(section.element)); | 288 treeElement.appendChild(new TreeElement(section.element)); |
| 289 } | 289 } |
| 290 } | 290 } |
| 291 | 291 |
| 292 /** | 292 /** |
| 293 * @param {boolean} viewSource | 293 * @param {boolean} viewSource |
| 294 * @param {function(!Event)} handler | 294 * @param {function(!Event)} handler |
| 295 * @return {!Element} | 295 * @return {!Element} |
| 296 */ | 296 */ |
| 297 _createViewSourceToggle(viewSource, handler) { | 297 _createViewSourceToggle(viewSource, handler) { |
| 298 var viewSourceToggleTitle = | 298 var viewSourceToggleTitle = |
| 299 viewSource ? WebInspector.UIString('view parsed') : WebInspector.UIStrin
g('view source'); | 299 viewSource ? Common.UIString('view parsed') : Common.UIString('view sour
ce'); |
| 300 var viewSourceToggleButton = this._createToggleButton(viewSourceToggleTitle)
; | 300 var viewSourceToggleButton = this._createToggleButton(viewSourceToggleTitle)
; |
| 301 viewSourceToggleButton.addEventListener('click', handler, false); | 301 viewSourceToggleButton.addEventListener('click', handler, false); |
| 302 return viewSourceToggleButton; | 302 return viewSourceToggleButton; |
| 303 } | 303 } |
| 304 | 304 |
| 305 /** | 305 /** |
| 306 * @param {!Event} event | 306 * @param {!Event} event |
| 307 */ | 307 */ |
| 308 _toggleURLDecoding(event) { | 308 _toggleURLDecoding(event) { |
| 309 this._decodeRequestParameters = !this._decodeRequestParameters; | 309 this._decodeRequestParameters = !this._decodeRequestParameters; |
| 310 this._refreshQueryString(); | 310 this._refreshQueryString(); |
| 311 this._refreshFormData(); | 311 this._refreshFormData(); |
| 312 event.consume(); | 312 event.consume(); |
| 313 } | 313 } |
| 314 | 314 |
| 315 _refreshRequestHeaders() { | 315 _refreshRequestHeaders() { |
| 316 var treeElement = this._requestHeadersCategory; | 316 var treeElement = this._requestHeadersCategory; |
| 317 var headers = this._request.requestHeaders().slice(); | 317 var headers = this._request.requestHeaders().slice(); |
| 318 headers.sort(function(a, b) { | 318 headers.sort(function(a, b) { |
| 319 return a.name.toLowerCase().compareTo(b.name.toLowerCase()); | 319 return a.name.toLowerCase().compareTo(b.name.toLowerCase()); |
| 320 }); | 320 }); |
| 321 var headersText = this._request.requestHeadersText(); | 321 var headersText = this._request.requestHeadersText(); |
| 322 | 322 |
| 323 if (this._showRequestHeadersText && headersText) | 323 if (this._showRequestHeadersText && headersText) |
| 324 this._refreshHeadersText(WebInspector.UIString('Request Headers'), headers
.length, headersText, treeElement); | 324 this._refreshHeadersText(Common.UIString('Request Headers'), headers.lengt
h, headersText, treeElement); |
| 325 else | 325 else |
| 326 this._refreshHeaders(WebInspector.UIString('Request Headers'), headers, tr
eeElement, headersText === undefined); | 326 this._refreshHeaders(Common.UIString('Request Headers'), headers, treeElem
ent, headersText === undefined); |
| 327 | 327 |
| 328 if (headersText) { | 328 if (headersText) { |
| 329 var toggleButton = this._createHeadersToggleButton(this._showRequestHeader
sText); | 329 var toggleButton = this._createHeadersToggleButton(this._showRequestHeader
sText); |
| 330 toggleButton.addEventListener('click', this._toggleRequestHeadersText.bind
(this), false); | 330 toggleButton.addEventListener('click', this._toggleRequestHeadersText.bind
(this), false); |
| 331 treeElement.listItemElement.appendChild(toggleButton); | 331 treeElement.listItemElement.appendChild(toggleButton); |
| 332 } | 332 } |
| 333 | 333 |
| 334 this._refreshFormData(); | 334 this._refreshFormData(); |
| 335 } | 335 } |
| 336 | 336 |
| 337 _refreshResponseHeaders() { | 337 _refreshResponseHeaders() { |
| 338 var treeElement = this._responseHeadersCategory; | 338 var treeElement = this._responseHeadersCategory; |
| 339 var headers = this._request.sortedResponseHeaders.slice(); | 339 var headers = this._request.sortedResponseHeaders.slice(); |
| 340 var headersText = this._request.responseHeadersText; | 340 var headersText = this._request.responseHeadersText; |
| 341 | 341 |
| 342 if (this._showResponseHeadersText) | 342 if (this._showResponseHeadersText) |
| 343 this._refreshHeadersText(WebInspector.UIString('Response Headers'), header
s.length, headersText, treeElement); | 343 this._refreshHeadersText(Common.UIString('Response Headers'), headers.leng
th, headersText, treeElement); |
| 344 else | 344 else |
| 345 this._refreshHeaders(WebInspector.UIString('Response Headers'), headers, t
reeElement); | 345 this._refreshHeaders(Common.UIString('Response Headers'), headers, treeEle
ment); |
| 346 | 346 |
| 347 if (headersText) { | 347 if (headersText) { |
| 348 var toggleButton = this._createHeadersToggleButton(this._showResponseHeade
rsText); | 348 var toggleButton = this._createHeadersToggleButton(this._showResponseHeade
rsText); |
| 349 toggleButton.addEventListener('click', this._toggleResponseHeadersText.bin
d(this), false); | 349 toggleButton.addEventListener('click', this._toggleResponseHeadersText.bin
d(this), false); |
| 350 treeElement.listItemElement.appendChild(toggleButton); | 350 treeElement.listItemElement.appendChild(toggleButton); |
| 351 } | 351 } |
| 352 } | 352 } |
| 353 | 353 |
| 354 _refreshHTTPInformation() { | 354 _refreshHTTPInformation() { |
| 355 var requestMethodElement = this._requestMethodItem; | 355 var requestMethodElement = this._requestMethodItem; |
| 356 requestMethodElement.hidden = !this._request.statusCode; | 356 requestMethodElement.hidden = !this._request.statusCode; |
| 357 var statusCodeElement = this._statusCodeItem; | 357 var statusCodeElement = this._statusCodeItem; |
| 358 statusCodeElement.hidden = !this._request.statusCode; | 358 statusCodeElement.hidden = !this._request.statusCode; |
| 359 | 359 |
| 360 if (this._request.statusCode) { | 360 if (this._request.statusCode) { |
| 361 var statusCodeFragment = createDocumentFragment(); | 361 var statusCodeFragment = createDocumentFragment(); |
| 362 statusCodeFragment.createChild('div', 'header-name').textContent = WebInsp
ector.UIString('Status Code') + ':'; | 362 statusCodeFragment.createChild('div', 'header-name').textContent = Common.
UIString('Status Code') + ':'; |
| 363 | 363 |
| 364 var statusCodeImage = statusCodeFragment.createChild('label', 'resource-st
atus-image', 'dt-icon-label'); | 364 var statusCodeImage = statusCodeFragment.createChild('label', 'resource-st
atus-image', 'dt-icon-label'); |
| 365 statusCodeImage.title = this._request.statusCode + ' ' + this._request.sta
tusText; | 365 statusCodeImage.title = this._request.statusCode + ' ' + this._request.sta
tusText; |
| 366 | 366 |
| 367 if (this._request.statusCode < 300 || this._request.statusCode === 304) | 367 if (this._request.statusCode < 300 || this._request.statusCode === 304) |
| 368 statusCodeImage.type = 'smallicon-green-ball'; | 368 statusCodeImage.type = 'smallicon-green-ball'; |
| 369 else if (this._request.statusCode < 400) | 369 else if (this._request.statusCode < 400) |
| 370 statusCodeImage.type = 'smallicon-orange-ball'; | 370 statusCodeImage.type = 'smallicon-orange-ball'; |
| 371 else | 371 else |
| 372 statusCodeImage.type = 'smallicon-red-ball'; | 372 statusCodeImage.type = 'smallicon-red-ball'; |
| 373 | 373 |
| 374 requestMethodElement.title = | 374 requestMethodElement.title = |
| 375 this._formatHeader(WebInspector.UIString('Request Method'), this._requ
est.requestMethod); | 375 this._formatHeader(Common.UIString('Request Method'), this._request.re
questMethod); |
| 376 | 376 |
| 377 var statusTextElement = statusCodeFragment.createChild('div', 'header-valu
e source-code'); | 377 var statusTextElement = statusCodeFragment.createChild('div', 'header-valu
e source-code'); |
| 378 var statusText = this._request.statusCode + ' ' + this._request.statusText
; | 378 var statusText = this._request.statusCode + ' ' + this._request.statusText
; |
| 379 if (this._request.fetchedViaServiceWorker) { | 379 if (this._request.fetchedViaServiceWorker) { |
| 380 statusText += ' ' + WebInspector.UIString('(from ServiceWorker)'); | 380 statusText += ' ' + Common.UIString('(from ServiceWorker)'); |
| 381 statusTextElement.classList.add('status-from-cache'); | 381 statusTextElement.classList.add('status-from-cache'); |
| 382 } else if (this._request.cached()) { | 382 } else if (this._request.cached()) { |
| 383 if (this._request.cachedInMemory()) | 383 if (this._request.cachedInMemory()) |
| 384 statusText += ' ' + WebInspector.UIString('(from memory cache)'); | 384 statusText += ' ' + Common.UIString('(from memory cache)'); |
| 385 else | 385 else |
| 386 statusText += ' ' + WebInspector.UIString('(from disk cache)'); | 386 statusText += ' ' + Common.UIString('(from disk cache)'); |
| 387 statusTextElement.classList.add('status-from-cache'); | 387 statusTextElement.classList.add('status-from-cache'); |
| 388 } | 388 } |
| 389 statusTextElement.textContent = statusText; | 389 statusTextElement.textContent = statusText; |
| 390 | 390 |
| 391 statusCodeElement.title = statusCodeFragment; | 391 statusCodeElement.title = statusCodeFragment; |
| 392 } | 392 } |
| 393 } | 393 } |
| 394 | 394 |
| 395 /** | 395 /** |
| 396 * @param {string} title | 396 * @param {string} title |
| 397 * @param {!TreeElement} headersTreeElement | 397 * @param {!TreeElement} headersTreeElement |
| 398 * @param {number} headersLength | 398 * @param {number} headersLength |
| 399 */ | 399 */ |
| 400 _refreshHeadersTitle(title, headersTreeElement, headersLength) { | 400 _refreshHeadersTitle(title, headersTreeElement, headersLength) { |
| 401 headersTreeElement.listItemElement.removeChildren(); | 401 headersTreeElement.listItemElement.removeChildren(); |
| 402 headersTreeElement.listItemElement.createTextChild(title); | 402 headersTreeElement.listItemElement.createTextChild(title); |
| 403 | 403 |
| 404 var headerCount = WebInspector.UIString('\u00A0(%d)', headersLength); | 404 var headerCount = Common.UIString('\u00A0(%d)', headersLength); |
| 405 headersTreeElement.listItemElement.createChild('span', 'header-count').textC
ontent = headerCount; | 405 headersTreeElement.listItemElement.createChild('span', 'header-count').textC
ontent = headerCount; |
| 406 } | 406 } |
| 407 | 407 |
| 408 /** | 408 /** |
| 409 * @param {string} title | 409 * @param {string} title |
| 410 * @param {!Array.<!WebInspector.NetworkRequest.NameValue>} headers | 410 * @param {!Array.<!SDK.NetworkRequest.NameValue>} headers |
| 411 * @param {!TreeElement} headersTreeElement | 411 * @param {!TreeElement} headersTreeElement |
| 412 * @param {boolean=} provisionalHeaders | 412 * @param {boolean=} provisionalHeaders |
| 413 */ | 413 */ |
| 414 _refreshHeaders(title, headers, headersTreeElement, provisionalHeaders) { | 414 _refreshHeaders(title, headers, headersTreeElement, provisionalHeaders) { |
| 415 headersTreeElement.removeChildren(); | 415 headersTreeElement.removeChildren(); |
| 416 | 416 |
| 417 var length = headers.length; | 417 var length = headers.length; |
| 418 this._refreshHeadersTitle(title, headersTreeElement, length); | 418 this._refreshHeadersTitle(title, headersTreeElement, length); |
| 419 | 419 |
| 420 if (provisionalHeaders) { | 420 if (provisionalHeaders) { |
| 421 var cautionText = WebInspector.UIString('Provisional headers are shown'); | 421 var cautionText = Common.UIString('Provisional headers are shown'); |
| 422 var cautionFragment = createDocumentFragment(); | 422 var cautionFragment = createDocumentFragment(); |
| 423 cautionFragment.createChild('label', '', 'dt-icon-label').type = 'smallico
n-warning'; | 423 cautionFragment.createChild('label', '', 'dt-icon-label').type = 'smallico
n-warning'; |
| 424 cautionFragment.createChild('div', 'caution').textContent = cautionText; | 424 cautionFragment.createChild('div', 'caution').textContent = cautionText; |
| 425 var cautionTreeElement = new TreeElement(cautionFragment); | 425 var cautionTreeElement = new TreeElement(cautionFragment); |
| 426 cautionTreeElement.selectable = false; | 426 cautionTreeElement.selectable = false; |
| 427 headersTreeElement.appendChild(cautionTreeElement); | 427 headersTreeElement.appendChild(cautionTreeElement); |
| 428 } | 428 } |
| 429 | 429 |
| 430 headersTreeElement.hidden = !length && !provisionalHeaders; | 430 headersTreeElement.hidden = !length && !provisionalHeaders; |
| 431 for (var i = 0; i < length; ++i) { | 431 for (var i = 0; i < length; ++i) { |
| (...skipping 12 matching lines...) Expand all Loading... |
| 444 _refreshHeadersText(title, count, headersText, headersTreeElement) { | 444 _refreshHeadersText(title, count, headersText, headersTreeElement) { |
| 445 this._populateTreeElementWithSourceText(headersTreeElement, headersText); | 445 this._populateTreeElementWithSourceText(headersTreeElement, headersText); |
| 446 this._refreshHeadersTitle(title, headersTreeElement, count); | 446 this._refreshHeadersTitle(title, headersTreeElement, count); |
| 447 } | 447 } |
| 448 | 448 |
| 449 _refreshRemoteAddress() { | 449 _refreshRemoteAddress() { |
| 450 var remoteAddress = this._request.remoteAddress(); | 450 var remoteAddress = this._request.remoteAddress(); |
| 451 var treeElement = this._remoteAddressItem; | 451 var treeElement = this._remoteAddressItem; |
| 452 treeElement.hidden = !remoteAddress; | 452 treeElement.hidden = !remoteAddress; |
| 453 if (remoteAddress) | 453 if (remoteAddress) |
| 454 treeElement.title = this._formatHeader(WebInspector.UIString('Remote Addre
ss'), remoteAddress); | 454 treeElement.title = this._formatHeader(Common.UIString('Remote Address'),
remoteAddress); |
| 455 } | 455 } |
| 456 | 456 |
| 457 /** | 457 /** |
| 458 * @param {!Event} event | 458 * @param {!Event} event |
| 459 */ | 459 */ |
| 460 _toggleRequestHeadersText(event) { | 460 _toggleRequestHeadersText(event) { |
| 461 this._showRequestHeadersText = !this._showRequestHeadersText; | 461 this._showRequestHeadersText = !this._showRequestHeadersText; |
| 462 this._refreshRequestHeaders(); | 462 this._refreshRequestHeaders(); |
| 463 event.consume(); | 463 event.consume(); |
| 464 } | 464 } |
| (...skipping 15 matching lines...) Expand all Loading... |
| 480 var button = createElementWithClass('span', 'header-toggle'); | 480 var button = createElementWithClass('span', 'header-toggle'); |
| 481 button.textContent = title; | 481 button.textContent = title; |
| 482 return button; | 482 return button; |
| 483 } | 483 } |
| 484 | 484 |
| 485 /** | 485 /** |
| 486 * @param {boolean} isHeadersTextShown | 486 * @param {boolean} isHeadersTextShown |
| 487 * @return {!Element} | 487 * @return {!Element} |
| 488 */ | 488 */ |
| 489 _createHeadersToggleButton(isHeadersTextShown) { | 489 _createHeadersToggleButton(isHeadersTextShown) { |
| 490 var toggleTitle = isHeadersTextShown ? WebInspector.UIString('view parsed')
: WebInspector.UIString('view source'); | 490 var toggleTitle = isHeadersTextShown ? Common.UIString('view parsed') : Comm
on.UIString('view source'); |
| 491 return this._createToggleButton(toggleTitle); | 491 return this._createToggleButton(toggleTitle); |
| 492 } | 492 } |
| 493 }; | 493 }; |
| 494 | 494 |
| 495 /** | 495 /** |
| 496 * @unrestricted | 496 * @unrestricted |
| 497 */ | 497 */ |
| 498 WebInspector.RequestHeadersView.Category = class extends TreeElement { | 498 Network.RequestHeadersView.Category = class extends TreeElement { |
| 499 /** | 499 /** |
| 500 * @param {!TreeOutline} root | 500 * @param {!TreeOutline} root |
| 501 * @param {string} name | 501 * @param {string} name |
| 502 * @param {string=} title | 502 * @param {string=} title |
| 503 */ | 503 */ |
| 504 constructor(root, name, title) { | 504 constructor(root, name, title) { |
| 505 super(title || '', true); | 505 super(title || '', true); |
| 506 this.selectable = false; | 506 this.selectable = false; |
| 507 this.toggleOnClick = true; | 507 this.toggleOnClick = true; |
| 508 this.hidden = true; | 508 this.hidden = true; |
| 509 this._expandedSetting = WebInspector.settings.createSetting('request-info-'
+ name + '-category-expanded', true); | 509 this._expandedSetting = Common.settings.createSetting('request-info-' + name
+ '-category-expanded', true); |
| 510 this.expanded = this._expandedSetting.get(); | 510 this.expanded = this._expandedSetting.get(); |
| 511 root.appendChild(this); | 511 root.appendChild(this); |
| 512 } | 512 } |
| 513 | 513 |
| 514 /** | 514 /** |
| 515 * @return {!TreeElement} | 515 * @return {!TreeElement} |
| 516 */ | 516 */ |
| 517 createLeaf() { | 517 createLeaf() { |
| 518 var leaf = new TreeElement(); | 518 var leaf = new TreeElement(); |
| 519 leaf.selectable = false; | 519 leaf.selectable = false; |
| 520 this.appendChild(leaf); | 520 this.appendChild(leaf); |
| 521 return leaf; | 521 return leaf; |
| 522 } | 522 } |
| 523 | 523 |
| 524 /** | 524 /** |
| 525 * @override | 525 * @override |
| 526 */ | 526 */ |
| 527 onexpand() { | 527 onexpand() { |
| 528 this._expandedSetting.set(true); | 528 this._expandedSetting.set(true); |
| 529 } | 529 } |
| 530 | 530 |
| 531 /** | 531 /** |
| 532 * @override | 532 * @override |
| 533 */ | 533 */ |
| 534 oncollapse() { | 534 oncollapse() { |
| 535 this._expandedSetting.set(false); | 535 this._expandedSetting.set(false); |
| 536 } | 536 } |
| 537 }; | 537 }; |
| OLD | NEW |