Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/sources/DebuggerPausedMessage.js

Issue 2389883003: DevTools: hoist debugger paused reason to top (Closed)
Patch Set: Widget >> custom element with shadow Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 /**
6 * @constructor
7 * @extends {HTMLDivElement}
8 */
9 WebInspector.DebuggerPausedMessage = function()
10 {
11 }
12
13 /**
14 * @return {!WebInspector.DebuggerPausedMessage}
15 */
16 WebInspector.DebuggerPausedMessage.create = function()
17 {
18 if (!WebInspector.DebuggerPausedMessage._constructor)
19 WebInspector.DebuggerPausedMessage._constructor = registerCustomElement( "div", "paused-message", WebInspector.DebuggerPausedMessage.prototype);
20
21 return /** @type {!WebInspector.DebuggerPausedMessage} */(new WebInspector.D ebuggerPausedMessage._constructor());
22 }
23
24 WebInspector.DebuggerPausedMessage.prototype = {
25 createdCallback: function()
26 {
27 this.classList.add("flex-none");
28 var root = WebInspector.createShadowRootWithCoreStyles(this, "sources/de buggerPausedMessage.css");
29 this.contentElement = root.createChild("div", "paused-status");
30 },
31
32 /**
33 * @param {?WebInspector.DebuggerPausedDetails} details
34 */
35 render: function(details)
lushnikov 2016/10/14 00:16:53 let's pass all the singletons we rely on here
luoe 2016/10/17 19:27:41 Done.
36 {
37 var status = this.contentElement;
38 status.hidden = !details;
39 status.removeChildren();
40 if (!details)
41 return;
42
43 var messageWrapper;
44 if (details.reason === WebInspector.DebuggerModel.BreakReason.DOM) {
45 messageWrapper = WebInspector.domBreakpointsSidebarPane.createBreakp ointHitMessage(details);
lushnikov 2016/10/14 00:16:53 let's use static method?
luoe 2016/10/17 19:27:41 Done.
46 } else if (details.reason === WebInspector.DebuggerModel.BreakReason.Eve ntListener) {
47 var eventName = details.auxData["eventName"];
48 var eventNameForUI = WebInspector.EventListenerBreakpointsSidebarPan e.eventNameForUI(eventName, details.auxData);
49 messageWrapper = buildWrapper(WebInspector.UIString("Paused on event listener"), eventNameForUI);
50 } else if (details.reason === WebInspector.DebuggerModel.BreakReason.XHR ) {
51 messageWrapper = buildWrapper(WebInspector.UIString("Paused on XMLHt tpRequest"), details.auxData["url"] || "");
52 } else if (details.reason === WebInspector.DebuggerModel.BreakReason.Exc eption) {
53 var description = details.auxData["description"] || details.auxData[ "value"] || "";
54 var descriptionFirstLine = description.split("\n", 1)[0];
55 messageWrapper = buildWrapper(WebInspector.UIString("Paused on excep tion"), descriptionFirstLine, description);
56 } else if (details.reason === WebInspector.DebuggerModel.BreakReason.Pro miseRejection) {
57 var description = details.auxData["description"] || details.auxData[ "value"] || "";
58 var descriptionFirstLine = description.split("\n", 1)[0];
59 messageWrapper = buildWrapper(WebInspector.UIString("Paused on promi se rejection"), descriptionFirstLine, description);
60 } else if (details.reason === WebInspector.DebuggerModel.BreakReason.Ass ert) {
61 messageWrapper = buildWrapper(WebInspector.UIString("Paused on asser tion"));
62 } else if (details.reason === WebInspector.DebuggerModel.BreakReason.Deb ugCommand) {
63 messageWrapper = buildWrapper(WebInspector.UIString("Paused on debug ged function"));
64 } else if (details.callFrames.length) {
65 var uiLocation = WebInspector.debuggerWorkspaceBinding.rawLocationTo UILocation(details.callFrames[0].location());
66 var breakpoint = uiLocation ? WebInspector.breakpointManager.findBre akpointOnLine(uiLocation.uiSourceCode, uiLocation.lineNumber) : null;
67 var defaultText = breakpoint ? WebInspector.UIString("Paused on brea kpoint") : WebInspector.UIString("Debugger paused");
68 messageWrapper = buildWrapper(defaultText);
69 } else {
70 console.warn("ScriptsPanel paused, but callFrames.length is zero."); // TODO remove this once we understand this case better
71 }
72
73 var errorLike = details.reason === WebInspector.DebuggerModel.BreakReaso n.Exception || details.reason === WebInspector.DebuggerModel.BreakReason.Promise Rejection || details.reason === WebInspector.DebuggerModel.BreakReason.Assert;
74 status.classList.toggle("error-reason", errorLike);
75 if (messageWrapper)
76 status.appendChild(messageWrapper);
77
78 /**
79 * @param {string} mainText
80 * @param {string=} subText
81 * @param {string=} title
82 * @return {!Element}
83 */
84 function buildWrapper(mainText, subText, title)
85 {
86 var messageWrapper = createElement("span");
87 var mainElement = messageWrapper.createChild("div", "status-main");
88 mainElement.textContent = mainText;
89 if (subText) {
90 var subElement = messageWrapper.createChild("div", "status-sub") ;
91 subElement.textContent = subText;
92 }
93 if (title)
94 messageWrapper.title = title;
95 return messageWrapper;
96 }
97 },
98
99 __proto__: HTMLDivElement.prototype
100 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698