OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * @constructor | 6 * @constructor |
7 * @extends {WebInspector.BreakpointsSidebarPaneBase} | 7 * @extends {WebInspector.BreakpointsSidebarPaneBase} |
8 * @implements {WebInspector.TargetManager.Observer} | 8 * @implements {WebInspector.TargetManager.Observer} |
9 */ | 9 */ |
10 WebInspector.AsyncOperationsSidebarPane = function() | 10 WebInspector.AsyncOperationsSidebarPane = function() |
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 } | 272 } |
273 }, | 273 }, |
274 | 274 |
275 /** | 275 /** |
276 * @param {!DebuggerAgent.AsyncOperation} operation | 276 * @param {!DebuggerAgent.AsyncOperation} operation |
277 */ | 277 */ |
278 _createAsyncOperationItem: function(operation) | 278 _createAsyncOperationItem: function(operation) |
279 { | 279 { |
280 var element = createElementWithClass("li", "async-operation"); | 280 var element = createElementWithClass("li", "async-operation"); |
281 | 281 |
282 var title = operation.description || WebInspector.UIString("Async Operat
ion"); | 282 var title; |
| 283 if (operation.stack) |
| 284 title = operation.stack.description; |
| 285 if (!title) |
| 286 title = WebInspector.UIString("Async Operation"); |
| 287 |
283 var label = createCheckboxLabel(title, operation[this._checkedSymbol]); | 288 var label = createCheckboxLabel(title, operation[this._checkedSymbol]); |
284 label.checkboxElement.addEventListener("click", this._checkboxClicked.bi
nd(this, operation.id), false); | 289 label.checkboxElement.addEventListener("click", this._checkboxClicked.bi
nd(this, operation.id), false); |
285 element.appendChild(label); | 290 element.appendChild(label); |
286 var debuggerModel = WebInspector.DebuggerModel.fromTarget(this._target); | 291 var debuggerModel = WebInspector.DebuggerModel.fromTarget(this._target); |
287 var callFrame = WebInspector.DebuggerPresentationUtils.callFrameAnchorFr
omStackTrace(debuggerModel, operation.stackTrace, operation.asyncStackTrace, thi
s._revealBlackboxedCallFrames); | 292 var callFrame = WebInspector.DebuggerPresentationUtils.callFrameAnchorFr
omStackTrace(debuggerModel, operation.stack, this._revealBlackboxedCallFrames); |
288 if (callFrame) | 293 if (callFrame) |
289 element.createChild("div").appendChild(this._linkifier.linkifyConsol
eCallFrame(this._target, callFrame)); | 294 element.createChild("div").appendChild(this._linkifier.linkifyConsol
eCallFrame(this._target, callFrame)); |
290 | 295 |
291 element[this._operationIdSymbol] = operation.id; | 296 element[this._operationIdSymbol] = operation.id; |
292 this._operationIdToElement.set(operation.id, element); | 297 this._operationIdToElement.set(operation.id, element); |
293 this.addListElement(element, this.listElement.firstChild); | 298 this.addListElement(element, this.listElement.firstChild); |
294 | 299 |
295 if (operation.id === this._breakpointHitId) { | 300 if (operation.id === this._breakpointHitId) { |
296 element.classList.add("breakpoint-hit"); | 301 element.classList.add("breakpoint-hit"); |
297 this.expand(); | 302 this.expand(); |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
346 | 351 |
347 /** | 352 /** |
348 * @param {!Element} anchor | 353 * @param {!Element} anchor |
349 * @param {!WebInspector.Popover} popover | 354 * @param {!WebInspector.Popover} popover |
350 */ | 355 */ |
351 _showPopover: function(anchor, popover) | 356 _showPopover: function(anchor, popover) |
352 { | 357 { |
353 var operation = this._operationForPopover(anchor); | 358 var operation = this._operationForPopover(anchor); |
354 if (!operation) | 359 if (!operation) |
355 return; | 360 return; |
356 var content = WebInspector.DOMPresentationUtils.buildStackTracePreviewCo
ntents(this._target, this._linkifier, operation.stackTrace, operation.asyncStack
Trace); | 361 var content = WebInspector.DOMPresentationUtils.buildStackTracePreviewCo
ntents(this._target, this._linkifier, operation.stack); |
357 popover.setCanShrink(true); | 362 popover.setCanShrink(true); |
358 popover.showForAnchor(content, anchor); | 363 popover.showForAnchor(content, anchor); |
359 }, | 364 }, |
360 | 365 |
361 /** | 366 /** |
362 * @param {!Element} element | 367 * @param {!Element} element |
363 * @return {?DebuggerAgent.AsyncOperation} | 368 * @return {?DebuggerAgent.AsyncOperation} |
364 */ | 369 */ |
365 _operationForPopover: function(element) | 370 _operationForPopover: function(element) |
366 { | 371 { |
367 var asyncOperations = this._target && this._asyncOperationsByTarget.get(
this._target); | 372 var asyncOperations = this._target && this._asyncOperationsByTarget.get(
this._target); |
368 if (!asyncOperations) | 373 if (!asyncOperations) |
369 return null; | 374 return null; |
370 var anchor = element.enclosingNodeOrSelfWithClass("async-operation"); | 375 var anchor = element.enclosingNodeOrSelfWithClass("async-operation"); |
371 if (!anchor) | 376 if (!anchor) |
372 return null; | 377 return null; |
373 var operationId = anchor[this._operationIdSymbol]; | 378 var operationId = anchor[this._operationIdSymbol]; |
374 var operation = operationId && asyncOperations.get(operationId); | 379 var operation = operationId && asyncOperations.get(operationId); |
375 if (!operation || !operation.stackTrace) | 380 if (!operation || !operation.stack) |
376 return null; | 381 return null; |
377 return operation; | 382 return operation; |
378 }, | 383 }, |
379 | 384 |
380 __proto__: WebInspector.BreakpointsSidebarPaneBase.prototype | 385 __proto__: WebInspector.BreakpointsSidebarPaneBase.prototype |
381 } | 386 } |
OLD | NEW |