author | Oana Pop Rus <opoprus@mozilla.com> |
Fri, 08 Feb 2019 11:53:37 +0200 | |
changeset 458225 | 3a3e393396f418df1490aa0832d0c54fc353d522 |
parent 458224 | da71b4d4ad402c64c19f686ed6014ec559c1844c (current diff) |
parent 458169 | 7e9ceabc7541c9f746f99717f228092f78f4bd28 (diff) |
child 458226 | fe34a6921349b360bb6b194979919586048d7f27 |
child 458227 | 22ca3a5f976fd0f11c96cd3f5d6b91e55fb9b06d |
child 458256 | 82c556cf5c5311bbf8e58b013733054805a0009c |
push id | 111775 |
push user | opoprus@mozilla.com |
push date | Fri, 08 Feb 2019 10:16:11 +0000 |
treeherder | mozilla-inbound@fe34a6921349 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | merge |
milestone | 67.0a1 |
first release with | nightly linux32
3a3e393396f4
/
67.0a1
/
20190208095514
/
files
nightly linux64
3a3e393396f4
/
67.0a1
/
20190208095514
/
files
nightly mac
3a3e393396f4
/
67.0a1
/
20190208095514
/
files
nightly win32
3a3e393396f4
/
67.0a1
/
20190208095514
/
files
nightly win64
3a3e393396f4
/
67.0a1
/
20190208095514
/
files
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
releases | nightly linux32
67.0a1
/
20190208095514
/
pushlog to previous
nightly linux64
67.0a1
/
20190208095514
/
pushlog to previous
nightly mac
67.0a1
/
20190208095514
/
pushlog to previous
nightly win32
67.0a1
/
20190208095514
/
pushlog to previous
nightly win64
67.0a1
/
20190208095514
/
pushlog to previous
|
--- a/devtools/client/debugger/new/README.mozilla +++ b/devtools/client/debugger/new/README.mozilla @@ -1,13 +1,13 @@ This is the debugger.html project output. See https://github.com/devtools-html/debugger.html -Version 123 +Version 124 -Comparison: https://github.com/devtools-html/debugger.html/compare/release-122...release-123 +Comparison: https://github.com/devtools-html/debugger.html/compare/release-123...release-124 Packages: - babel-plugin-transform-es2015-modules-commonjs @6.26.2 - babel-preset-react @6.24.1 - react @16.4.1 - react-dom @16.4.1 - webpack @3.12.0
--- a/devtools/client/debugger/new/dist/debugger.css +++ b/devtools/client/debugger/new/dist/debugger.css @@ -1070,16 +1070,20 @@ html[dir="rtl"] .managed-tree .tree .nod /* default height an width which will likely be overrode */ width: 12px; height: 12px; /* makes span appear like an image */ display: inline-block; background: var(--theme-icon-color); mask-size: 100%; } + +.img.arrow.arrow.expanded { + transform: rotate(0deg); +} /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ .close-btn { width: 14px; height: 14px; border: 1px solid transparent; @@ -2326,20 +2330,16 @@ menuseparator { font-size: 0.9em; color: var(--theme-comment); } .sources-list .tree .focused .label .suffix { color: inherit; } -.sources-list .tree .img.arrow.expanded { - transform: rotate(0deg); -} - .theme-dark .source-list .tree .node.focused { background-color: var(--theme-tab-toolbar-background); } .sources-list .tree .focused .label { background-color: var(--theme-selection-background); } @@ -3756,52 +3756,47 @@ html[dir="rtl"] .breakpoints-list .break .input-expression:not(:placeholder-shown) { font-family: var(--monospace-font-family); } /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ -.frames [role="list"] .frames-group .group, -.frames [role="list"] .frames-group .group .location { +.frames ul .frames-group .group, +.frames ul .frames-group .group .location { font-weight: 500; cursor: default; /* * direction:rtl is set in Frames.css to overflow the location text from the * start. Here we need to reset it in order to display the framework icon * after the framework name. */ direction: ltr; } -.frames [role="list"] .frames-group.expanded .group, -.frames [role="list"] .frames-group.expanded .group .location { +.frames ul .frames-group.expanded .group, +.frames ul .frames-group.expanded .group .location { color: var(--theme-highlight-blue); } -.frames [role="list"] .frames-group.expanded .react path { +.frames ul .frames-group.expanded .react path { fill: var(--theme-highlight-blue); } -.frames [role="list"] .frames-group .frames-list [role="listitem"] { +.frames ul .frames-group .frames-list li { padding-left: 30px; } -.frames [role="list"] .frames-group .frames-list { +.frames ul .frames-group .frames-list { border-top: 1px solid var(--theme-splitter-color); border-bottom: 1px solid var(--theme-splitter-color); } -/* We don't want to display those as flex since only the name is displayed */ -.frames [role="list"] .frames-group .frames-list [role="listitem"] { - display: block; -} - -.frames [role="list"] .frames-group.expanded .badge { +.frames ul .frames-group.expanded .badge { color: var(--theme-highlight-blue); } .group-description-name { padding-left: 5px; } /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this @@ -3857,17 +3852,17 @@ html[dir="rtl"] .breakpoints-list .break font-style: normal; } /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ .frames [role="list"] { list-style: none; - margin: 0; + margin-top: 4px; padding: 0; } .frames [role="list"] [role="listitem"] { padding: 2px 10px 2px 20px; overflow: hidden; display: flex; justify-content: space-between; @@ -3959,17 +3954,16 @@ html[dir="rtl"] .breakpoints-list .break .show-more:hover { background-color: var(--theme-toolbar-background-hover); } .annotation-logo { mask-size: 100%; display: inline-block; width: 12px; - margin-inline-start: 4px; } :root.theme-dark .annotation-logo:not(.angular) svg path { fill: var(--theme-highlight-blue); } /* Some elements are added to the DOM only to be printed into the clipboard when the user copy some elements. We don't want those elements to mess with @@ -4619,16 +4613,23 @@ html .welcomebox .toggle-button-end.coll background-color: var(--theme-toolbar-background); } .source-header * { -moz-user-select: none; user-select: none; } +.source-header .command-bar { + flex: initial; + flex-shrink: 0; + border-bottom: 0; + border-inline-start: 1px solid var(--theme-splitter-color); +} + .source-tabs { max-width: calc(100% - 80px); align-self: flex-start; } .source-tab { display: inline-flex; align-items: center; @@ -4647,17 +4648,18 @@ html .welcomebox .toggle-button-end.coll .source-tab::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 2px; background-color: var(--tab-line-color, transparent); - transition: transform 250ms var(--animation-curve), opacity 250ms var(--animation-curve); + transition: transform 250ms var(--animation-curve), + opacity 250ms var(--animation-curve); opacity: 0; transform: scaleX(0); } .source-tab.active { --tab-line-color: var(--tab-line-selected-color); color: var(--theme-toolbar-selected-color); border-bottom-color: transparent;
--- a/devtools/client/debugger/new/dist/parser-worker.js +++ b/devtools/client/debugger/new/dist/parser-worker.js @@ -20754,18 +20754,16 @@ exports.buildScopeList = buildScopeList; var _isEmpty = __webpack_require__(963); var _isEmpty2 = _interopRequireDefault(_isEmpty); var _types = __webpack_require__(2268); var t = _interopRequireWildcard(_types); -var _devtoolsSourceMap = __webpack_require__(3646); - var _getFunctionName = __webpack_require__(1621); var _getFunctionName2 = _interopRequireDefault(_getFunctionName); var _ast = __webpack_require__(1375); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } @@ -20790,26 +20788,32 @@ function _interopRequireDefault(obj) { r * * "global" * Variables that reference undeclared global values. */ // Location information about the expression immediartely surrounding a // given binding reference. +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ + +function isGeneratedId(id) { + return !/\/originalSource/.test(id); +} + function parseSourceScopes(sourceId) { const ast = (0, _ast.getAst)(sourceId); if ((0, _isEmpty2.default)(ast)) { return null; } return buildScopeList(ast, sourceId); -} /* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ +} function buildScopeList(ast, sourceId) { const { global, lexical } = createGlobalScope(ast, sourceId); const state = { sourceId, freeVariables: new Map(), freeVariableStack: [], @@ -20831,17 +20835,17 @@ function buildScopeList(ast, sourceId) { } binding.refs = freeVariables.concat(binding.refs); } // TODO: This should probably check for ".mjs" extension on the // original file, and should also be skipped if the the generated // code is an ES6 module rather than a script. - if ((0, _devtoolsSourceMap.isGeneratedId)(sourceId) || ast.program.sourceType === "script" && !looksLikeCommonJS(global)) { + if (isGeneratedId(sourceId) || ast.program.sourceType === "script" && !looksLikeCommonJS(global)) { stripModuleScope(global); } return toParsedScopes([global], sourceId) || []; } function toParsedScopes(children, sourceId) { if (!children || children.length === 0) { @@ -21476,354 +21480,16 @@ function stripModuleScope(rootScope) { rootLexicalScope.children = moduleScope.children; rootLexicalScope.children.forEach(child => { child.parent = rootLexicalScope; }); } /***/ }), -/***/ 248: -/***/ (function(module, exports, __webpack_require__) { - -(function(){ - var crypt = __webpack_require__(249), - utf8 = __webpack_require__(250).utf8, - isBuffer = __webpack_require__(251), - bin = __webpack_require__(250).bin, - - // The core - md5 = function (message, options) { - // Convert to byte array - if (message.constructor == String) - if (options && options.encoding === 'binary') - message = bin.stringToBytes(message); - else - message = utf8.stringToBytes(message); - else if (isBuffer(message)) - message = Array.prototype.slice.call(message, 0); - else if (!Array.isArray(message)) - message = message.toString(); - // else, assume byte array already - - var m = crypt.bytesToWords(message), - l = message.length * 8, - a = 1732584193, - b = -271733879, - c = -1732584194, - d = 271733878; - - // Swap endian - for (var i = 0; i < m.length; i++) { - m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF | - ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00; - } - - // Padding - m[l >>> 5] |= 0x80 << (l % 32); - m[(((l + 64) >>> 9) << 4) + 14] = l; - - // Method shortcuts - var FF = md5._ff, - GG = md5._gg, - HH = md5._hh, - II = md5._ii; - - for (var i = 0; i < m.length; i += 16) { - - var aa = a, - bb = b, - cc = c, - dd = d; - - a = FF(a, b, c, d, m[i+ 0], 7, -680876936); - d = FF(d, a, b, c, m[i+ 1], 12, -389564586); - c = FF(c, d, a, b, m[i+ 2], 17, 606105819); - b = FF(b, c, d, a, m[i+ 3], 22, -1044525330); - a = FF(a, b, c, d, m[i+ 4], 7, -176418897); - d = FF(d, a, b, c, m[i+ 5], 12, 1200080426); - c = FF(c, d, a, b, m[i+ 6], 17, -1473231341); - b = FF(b, c, d, a, m[i+ 7], 22, -45705983); - a = FF(a, b, c, d, m[i+ 8], 7, 1770035416); - d = FF(d, a, b, c, m[i+ 9], 12, -1958414417); - c = FF(c, d, a, b, m[i+10], 17, -42063); - b = FF(b, c, d, a, m[i+11], 22, -1990404162); - a = FF(a, b, c, d, m[i+12], 7, 1804603682); - d = FF(d, a, b, c, m[i+13], 12, -40341101); - c = FF(c, d, a, b, m[i+14], 17, -1502002290); - b = FF(b, c, d, a, m[i+15], 22, 1236535329); - - a = GG(a, b, c, d, m[i+ 1], 5, -165796510); - d = GG(d, a, b, c, m[i+ 6], 9, -1069501632); - c = GG(c, d, a, b, m[i+11], 14, 643717713); - b = GG(b, c, d, a, m[i+ 0], 20, -373897302); - a = GG(a, b, c, d, m[i+ 5], 5, -701558691); - d = GG(d, a, b, c, m[i+10], 9, 38016083); - c = GG(c, d, a, b, m[i+15], 14, -660478335); - b = GG(b, c, d, a, m[i+ 4], 20, -405537848); - a = GG(a, b, c, d, m[i+ 9], 5, 568446438); - d = GG(d, a, b, c, m[i+14], 9, -1019803690); - c = GG(c, d, a, b, m[i+ 3], 14, -187363961); - b = GG(b, c, d, a, m[i+ 8], 20, 1163531501); - a = GG(a, b, c, d, m[i+13], 5, -1444681467); - d = GG(d, a, b, c, m[i+ 2], 9, -51403784); - c = GG(c, d, a, b, m[i+ 7], 14, 1735328473); - b = GG(b, c, d, a, m[i+12], 20, -1926607734); - - a = HH(a, b, c, d, m[i+ 5], 4, -378558); - d = HH(d, a, b, c, m[i+ 8], 11, -2022574463); - c = HH(c, d, a, b, m[i+11], 16, 1839030562); - b = HH(b, c, d, a, m[i+14], 23, -35309556); - a = HH(a, b, c, d, m[i+ 1], 4, -1530992060); - d = HH(d, a, b, c, m[i+ 4], 11, 1272893353); - c = HH(c, d, a, b, m[i+ 7], 16, -155497632); - b = HH(b, c, d, a, m[i+10], 23, -1094730640); - a = HH(a, b, c, d, m[i+13], 4, 681279174); - d = HH(d, a, b, c, m[i+ 0], 11, -358537222); - c = HH(c, d, a, b, m[i+ 3], 16, -722521979); - b = HH(b, c, d, a, m[i+ 6], 23, 76029189); - a = HH(a, b, c, d, m[i+ 9], 4, -640364487); - d = HH(d, a, b, c, m[i+12], 11, -421815835); - c = HH(c, d, a, b, m[i+15], 16, 530742520); - b = HH(b, c, d, a, m[i+ 2], 23, -995338651); - - a = II(a, b, c, d, m[i+ 0], 6, -198630844); - d = II(d, a, b, c, m[i+ 7], 10, 1126891415); - c = II(c, d, a, b, m[i+14], 15, -1416354905); - b = II(b, c, d, a, m[i+ 5], 21, -57434055); - a = II(a, b, c, d, m[i+12], 6, 1700485571); - d = II(d, a, b, c, m[i+ 3], 10, -1894986606); - c = II(c, d, a, b, m[i+10], 15, -1051523); - b = II(b, c, d, a, m[i+ 1], 21, -2054922799); - a = II(a, b, c, d, m[i+ 8], 6, 1873313359); - d = II(d, a, b, c, m[i+15], 10, -30611744); - c = II(c, d, a, b, m[i+ 6], 15, -1560198380); - b = II(b, c, d, a, m[i+13], 21, 1309151649); - a = II(a, b, c, d, m[i+ 4], 6, -145523070); - d = II(d, a, b, c, m[i+11], 10, -1120210379); - c = II(c, d, a, b, m[i+ 2], 15, 718787259); - b = II(b, c, d, a, m[i+ 9], 21, -343485551); - - a = (a + aa) >>> 0; - b = (b + bb) >>> 0; - c = (c + cc) >>> 0; - d = (d + dd) >>> 0; - } - - return crypt.endian([a, b, c, d]); - }; - - // Auxiliary functions - md5._ff = function (a, b, c, d, x, s, t) { - var n = a + (b & c | ~b & d) + (x >>> 0) + t; - return ((n << s) | (n >>> (32 - s))) + b; - }; - md5._gg = function (a, b, c, d, x, s, t) { - var n = a + (b & d | c & ~d) + (x >>> 0) + t; - return ((n << s) | (n >>> (32 - s))) + b; - }; - md5._hh = function (a, b, c, d, x, s, t) { - var n = a + (b ^ c ^ d) + (x >>> 0) + t; - return ((n << s) | (n >>> (32 - s))) + b; - }; - md5._ii = function (a, b, c, d, x, s, t) { - var n = a + (c ^ (b | ~d)) + (x >>> 0) + t; - return ((n << s) | (n >>> (32 - s))) + b; - }; - - // Package private blocksize - md5._blocksize = 16; - md5._digestsize = 16; - - module.exports = function (message, options) { - if (message === undefined || message === null) - throw new Error('Illegal argument ' + message); - - var digestbytes = crypt.wordsToBytes(md5(message, options)); - return options && options.asBytes ? digestbytes : - options && options.asString ? bin.bytesToString(digestbytes) : - crypt.bytesToHex(digestbytes); - }; - -})(); - - -/***/ }), - -/***/ 249: -/***/ (function(module, exports) { - -(function() { - var base64map - = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', - - crypt = { - // Bit-wise rotation left - rotl: function(n, b) { - return (n << b) | (n >>> (32 - b)); - }, - - // Bit-wise rotation right - rotr: function(n, b) { - return (n << (32 - b)) | (n >>> b); - }, - - // Swap big-endian to little-endian and vice versa - endian: function(n) { - // If number given, swap endian - if (n.constructor == Number) { - return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00; - } - - // Else, assume array and swap all items - for (var i = 0; i < n.length; i++) - n[i] = crypt.endian(n[i]); - return n; - }, - - // Generate an array of any length of random bytes - randomBytes: function(n) { - for (var bytes = []; n > 0; n--) - bytes.push(Math.floor(Math.random() * 256)); - return bytes; - }, - - // Convert a byte array to big-endian 32-bit words - bytesToWords: function(bytes) { - for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8) - words[b >>> 5] |= bytes[i] << (24 - b % 32); - return words; - }, - - // Convert big-endian 32-bit words to a byte array - wordsToBytes: function(words) { - for (var bytes = [], b = 0; b < words.length * 32; b += 8) - bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF); - return bytes; - }, - - // Convert a byte array to a hex string - bytesToHex: function(bytes) { - for (var hex = [], i = 0; i < bytes.length; i++) { - hex.push((bytes[i] >>> 4).toString(16)); - hex.push((bytes[i] & 0xF).toString(16)); - } - return hex.join(''); - }, - - // Convert a hex string to a byte array - hexToBytes: function(hex) { - for (var bytes = [], c = 0; c < hex.length; c += 2) - bytes.push(parseInt(hex.substr(c, 2), 16)); - return bytes; - }, - - // Convert a byte array to a base-64 string - bytesToBase64: function(bytes) { - for (var base64 = [], i = 0; i < bytes.length; i += 3) { - var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2]; - for (var j = 0; j < 4; j++) - if (i * 8 + j * 6 <= bytes.length * 8) - base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F)); - else - base64.push('='); - } - return base64.join(''); - }, - - // Convert a base-64 string to a byte array - base64ToBytes: function(base64) { - // Remove non-base-64 characters - base64 = base64.replace(/[^A-Z0-9+\/]/ig, ''); - - for (var bytes = [], i = 0, imod4 = 0; i < base64.length; - imod4 = ++i % 4) { - if (imod4 == 0) continue; - bytes.push(((base64map.indexOf(base64.charAt(i - 1)) - & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2)) - | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2))); - } - return bytes; - } - }; - - module.exports = crypt; -})(); - - -/***/ }), - -/***/ 250: -/***/ (function(module, exports) { - -var charenc = { - // UTF-8 encoding - utf8: { - // Convert a string to a byte array - stringToBytes: function(str) { - return charenc.bin.stringToBytes(unescape(encodeURIComponent(str))); - }, - - // Convert a byte array to a string - bytesToString: function(bytes) { - return decodeURIComponent(escape(charenc.bin.bytesToString(bytes))); - } - }, - - // Binary encoding - bin: { - // Convert a string to a byte array - stringToBytes: function(str) { - for (var bytes = [], i = 0; i < str.length; i++) - bytes.push(str.charCodeAt(i) & 0xFF); - return bytes; - }, - - // Convert a byte array to a string - bytesToString: function(bytes) { - for (var str = [], i = 0; i < bytes.length; i++) - str.push(String.fromCharCode(bytes[i])); - return str.join(''); - } - } -}; - -module.exports = charenc; - - -/***/ }), - -/***/ 251: -/***/ (function(module, exports) { - -/*! - * Determine if an object is a Buffer - * - * @author Feross Aboukhadijeh <https://feross.org> - * @license MIT - */ - -// The _isBuffer check is for Safari 5-7 support, because it's missing -// Object.prototype.constructor. Remove this eventually -module.exports = function (obj) { - return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) -} - -function isBuffer (obj) { - return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) -} - -// For Node v0.10 support. Remove this eventually. -function isSlowBuffer (obj) { - return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) -} - - -/***/ }), - /***/ 262: /***/ (function(module, exports, __webpack_require__) { var baseFindIndex = __webpack_require__(263), baseIteratee = __webpack_require__(814), toInteger = __webpack_require__(302); /* Built-in method references for those with the same name as other `lodash` methods. */ @@ -23119,89 +22785,16 @@ function mapOriginalExpression(expressio return (0, _generator2.default)(ast).code; } return expression; } /***/ }), -/***/ 3646: -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ - -const { - originalToGeneratedId, - generatedToOriginalId, - isGeneratedId, - isOriginalId -} = __webpack_require__(3652); - -const { - workerUtils: { WorkerDispatcher } -} = __webpack_require__(3651); - -const dispatcher = new WorkerDispatcher(); - -const setAssetRootURL = dispatcher.task("setAssetRootURL"); -const getOriginalURLs = dispatcher.task("getOriginalURLs"); -const hasOriginalURL = dispatcher.task("hasOriginalURL"); -const getOriginalRanges = dispatcher.task("getOriginalRanges"); -const getGeneratedRanges = dispatcher.task("getGeneratedRanges", { - queue: true -}); -const getGeneratedLocation = dispatcher.task("getGeneratedLocation", { - queue: true -}); -const getAllGeneratedLocations = dispatcher.task("getAllGeneratedLocations", { - queue: true -}); -const getOriginalLocation = dispatcher.task("getOriginalLocation"); -const getFileGeneratedRange = dispatcher.task("getFileGeneratedRange"); -const getLocationScopes = dispatcher.task("getLocationScopes"); -const getOriginalSourceText = dispatcher.task("getOriginalSourceText"); -const applySourceMap = dispatcher.task("applySourceMap"); -const clearSourceMaps = dispatcher.task("clearSourceMaps"); -const hasMappedSource = dispatcher.task("hasMappedSource"); -const getOriginalStackFrames = dispatcher.task("getOriginalStackFrames"); - -module.exports = { - originalToGeneratedId, - generatedToOriginalId, - isGeneratedId, - isOriginalId, - hasMappedSource, - getOriginalURLs, - hasOriginalURL, - getOriginalRanges, - getGeneratedRanges, - getGeneratedLocation, - getAllGeneratedLocations, - getOriginalLocation, - getFileGeneratedRange, - getLocationScopes, - getOriginalSourceText, - applySourceMap, - clearSourceMaps, - getOriginalStackFrames, - startSourceMapWorker(url, assetRoot) { - dispatcher.start(url); - setAssetRootURL(assetRoot); - }, - stopSourceMapWorker: dispatcher.stop.bind(dispatcher) -}; - -/***/ }), - /***/ 3651: /***/ (function(module, exports, __webpack_require__) { /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ const networkRequest = __webpack_require__(3653); @@ -23209,104 +22802,16 @@ const workerUtils = __webpack_require__( module.exports = { networkRequest, workerUtils }; /***/ }), -/***/ 3652: -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ - -const md5 = __webpack_require__(248); - -function originalToGeneratedId(originalId) { - const match = originalId.match(/(.*)\/originalSource/); - return match ? match[1] : ""; -} - -function generatedToOriginalId(generatedId, url) { - return `${generatedId}/originalSource-${md5(url)}`; -} - -function isOriginalId(id) { - return (/\/originalSource/.test(id) - ); -} - -function isGeneratedId(id) { - return !isOriginalId(id); -} - -/** - * Trims the query part or reference identifier of a URL string, if necessary. - */ -function trimUrlQuery(url) { - const length = url.length; - const q1 = url.indexOf("?"); - const q2 = url.indexOf("&"); - const q3 = url.indexOf("#"); - const q = Math.min(q1 != -1 ? q1 : length, q2 != -1 ? q2 : length, q3 != -1 ? q3 : length); - - return url.slice(0, q); -} - -// Map suffix to content type. -const contentMap = { - js: "text/javascript", - jsm: "text/javascript", - mjs: "text/javascript", - ts: "text/typescript", - tsx: "text/typescript-jsx", - jsx: "text/jsx", - vue: "text/vue", - coffee: "text/coffeescript", - elm: "text/elm", - cljc: "text/x-clojure", - cljs: "text/x-clojurescript" -}; - -/** - * Returns the content type for the specified URL. If no specific - * content type can be determined, "text/plain" is returned. - * - * @return String - * The content type. - */ -function getContentType(url) { - url = trimUrlQuery(url); - const dot = url.lastIndexOf("."); - if (dot >= 0) { - const name = url.substring(dot + 1); - if (name in contentMap) { - return contentMap[name]; - } - } - return "text/plain"; -} - -module.exports = { - originalToGeneratedId, - generatedToOriginalId, - isOriginalId, - isGeneratedId, - getContentType, - contentMapForTesting: contentMap -}; - -/***/ }), - /***/ 3653: /***/ (function(module, exports) { /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ function networkRequest(url, opts) {
--- a/devtools/client/debugger/new/packages/devtools-components/package.json +++ b/devtools/client/debugger/new/packages/devtools-components/package.json @@ -21,13 +21,13 @@ "devDependencies": { "@storybook/react": "^3.3.14", "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0", "babel-preset-react": "^6.24.1", "devtools-license-check": "^0.7.0", "enzyme": "^3.3.0", "enzyme-adapter-react-16": "^1.1.1", "eslint": "^5.0.0", - "eslint-plugin-mozilla": "1.0.4", + "eslint-plugin-mozilla": "1.1.1", "fs-extra": "^7.0.0", "lodash": "^4.17.2" } }
--- a/devtools/client/debugger/new/packages/devtools-components/src/images/arrow.svg +++ b/devtools/client/debugger/new/packages/devtools-components/src/images/arrow.svg @@ -1,6 +1,6 @@ <!-- This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="context-fill #9B9B9B"> - <path d="M8 13.4c-.5 0-.9-.2-1.2-.6L.4 5.2C0 4.7-.1 4.3.2 3.7S1 3 1.6 3h12.8c.6 0 1.2.1 1.4.7.3.6.2 1.1-.2 1.6l-6.4 7.6c-.3.4-.7.5-1.2.5z"/> +<svg viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg"> + <path d="M5 8c-.25 0-.35-.1-.65-.4l-3.1-3.35C.75 3.7 1.1 3 1.75 3h6.5c.65 0 1 .7.5 1.25L5.65 7.6c-.3.3-.4.4-.65.4z"/> </svg>
--- a/devtools/client/debugger/new/packages/devtools-components/src/tree.css +++ b/devtools/client/debugger/new/packages/devtools-components/src/tree.css @@ -53,18 +53,18 @@ .tree .tree-node[data-expandable="true"] { cursor: default; } .tree-node button.arrow { background:url(/images/arrow.svg) no-repeat; background-size:contain; background-position:center center; - width: 9px; - height: 9px; + width: 10px; + height: 10px; border:0; padding:0; margin-inline-start: 1px; margin-inline-end: 4px; transform: rotate(-90deg); transform-origin: center center; transition: transform 0.125s ease; align-self: center;
--- a/devtools/client/debugger/new/packages/devtools-components/src/tree.js +++ b/devtools/client/debugger/new/packages/devtools-components/src/tree.js @@ -793,28 +793,25 @@ class Tree extends Component { // We can stop the propagation since click handler on the node can be // created in `renderItem`. e.stopPropagation(); // Since the user just clicked the node, there's no need to check if // it should be scrolled into view. this._focus(item, { preventAutoScroll: true }); if (this.props.isExpanded(item)) { - this.props.onCollapse(item); + this.props.onCollapse(item, e.altKey); } else { this.props.onExpand(item, e.altKey); } } }); }); - const style = Object.assign({}, this.props.style || {}, { - padding: 0, - margin: 0 - }); + const style = Object.assign({}, this.props.style || {}); return dom.div( { className: `tree ${this.props.className ? this.props.className : ""}`, ref: el => { this.treeRef = el; }, role: "tree",
new file mode 100644 --- /dev/null +++ b/devtools/client/debugger/new/packages/devtools-components/webpack.config.js @@ -0,0 +1,48 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +const { toolboxConfig } = require("devtools-launchpad/index"); +const {isDevelopment} = require("devtools-config"); + +const path = require("path"); +const projectPath = path.join(__dirname); + +const webpackConfig = { + entry: { + "devtools-components": path.join(projectPath, "index.js"), + }, + + output: { + path: path.join(__dirname, "assets/build"), + filename: "[name].js", + publicPath: "/assets/build", + libraryTarget: "umd", + }, + resolve: { + alias: { + "devtools/client/shared/vendor/react": "react", + "devtools/client/shared/vendor/react-dom": "react-dom", + "devtools/client/shared/vendor/react-dom-factories": "react-dom-factories", + "devtools/client/shared/vendor/react-prop-types": "prop-types", + "Services": path.join(__dirname, + "node_modules/devtools-modules/client/shared/shim/Services"), + } + } +}; + +const extra = { + disablePostCSS: true, +}; +webpackConfig.plugins = []; +if (!isDevelopment()) { + extra.excludeMap = { + react: "devtools/client/shared/vendor/react", + "react-dom": "devtools/client/shared/vendor/react-dom", + "react-dom-factories": "devtools/client/shared/vendor/react-dom-factories", + "prop-types": "devtools/client/shared/vendor/react-prop-types", + lodash: "devtools/client/shared/vendor/lodash", + }; +} + +module.exports = toolboxConfig(webpackConfig, {}, extra);
--- a/devtools/client/debugger/new/packages/devtools-reps/README.md +++ b/devtools/client/debugger/new/packages/devtools-reps/README.md @@ -58,27 +58,27 @@ yarn start ``` and navigate to `http://localhost:8000` to access the dashboard. ## Running the demo app Navigating to the above address will have landed you on an empty launchpad UI: - + Click on the _Launch Firefox_ button. This should launch Firefox with a dedicated profile, listening for connections on port 6080. The UI should update automatically and show you at least one tab for the new Firefox instance. If it doesn't, reload the dashboard. - + Click on any of the tabs. This should open the demo app: - + Then you can type any expression in the input field. They will be evaluated against the target tab selected in the previous steps (so if there specific objects on window on this webpage, you can check how they are represented with reps etc, ...). ## Running the tests Reps tests are written with jest. They are run on every pull request with Circle CI, and you can run them locally by executing `yarn test` from /packages/devtools-reps.
index c5d114d4ccca2078740fd12a2a31bbf95f39afa2..1c98b2b74116dd5b0086bb448e9e2acd7ec8a2a0 GIT binary patch literal 145148 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 X)}8Z3|KIo-fWXt$4>TX<1WFnJW%O%h
index b439184495807d84bdacaf029c6fa9f8e1fd58d8..3b4306ebf08e5e067c103556126c619ac53f52f5 GIT binary patch literal 118783 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 HxR3uAkTgHL
index dd05f51b2fbfed7523fdeb8bf27f919f64eca0ec..d0128db5201d79dcf18be360892c7b9507ec31b1 GIT binary patch literal 167956 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
--- a/devtools/client/debugger/new/packages/devtools-reps/package.json +++ b/devtools/client/debugger/new/packages/devtools-reps/package.json @@ -33,24 +33,24 @@ "redux": "^3.7.2" }, "devDependencies": { "@sucrase/webpack-object-rest-spread-plugin": "^1.0.0", "babel-plugin-syntax-object-rest-spread": "^6.13.0", "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0", "babel-preset-react": "^6.24.1", "devtools-config": "^0.0.16", - "devtools-launchpad": "^0.0.141", + "devtools-launchpad": "^0.0.145", "devtools-license-check": "^0.7.0", "devtools-modules": "~1.1.0", "devtools-services": "^0.0.1", "enzyme": "^3.3.0", "enzyme-adapter-react-16": "^1.1.1", "enzyme-to-json": "^3.3.1", "eslint": "^5.0.0", - "eslint-plugin-mozilla": "1.0.4", + "eslint-plugin-mozilla": "1.1.1", "fs-extra": "^7.0.0", "immutable": "^3.8.2", "postcss-url-mapper": "^1.2.0", "react-immutable-proptypes": "^2.1.0", "redux-logger": "=3.0.6" } }
--- a/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/actions.js +++ b/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/actions.js @@ -99,21 +99,29 @@ function rootsChanged(props: Props) { function releaseActors(state, client) { const actors = getActors(state); for (const actor of actors) { client.releaseActor(actor); } } -function invokeGetter(node: Node, grip: object, getterName: string) { +function invokeGetter( + node: Node, + targetGrip: object, + receiverId: string | null, + getterName: string +) { return async ({ dispatch, client, getState }: ThunkArg) => { try { - const objectClient = client.createObjectClient(grip); - const result = await objectClient.getPropertyValue(getterName); + const objectClient = client.createObjectClient(targetGrip); + const result = await objectClient.getPropertyValue( + getterName, + receiverId + ); dispatch({ type: "GETTER_INVOKED", data: { node, result } }); } catch (e) {
--- a/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/components/ObjectInspectorItem.js +++ b/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/components/ObjectInspectorItem.js @@ -32,17 +32,18 @@ const { nodeIsSetter, nodeIsUninitializedBinding, nodeIsUnmappedBinding, nodeIsUnscopedBinding, nodeIsWindow, nodeIsLongString, nodeHasFullText, nodeHasGetter, - getNonPrototypeParentGripValue + getNonPrototypeParentGripValue, + getParentGripValue } = Utils.node; type Props = { item: Node, depth: number, expanded: boolean, focused: boolean, arrow: ReactElement, @@ -162,21 +163,27 @@ class ObjectInspectorItem extends Compon if (nodeIsLongString(item)) { repProps.member = { open: nodeHasFullText(item) && expanded }; } if (nodeHasGetter(item)) { - const parentGrip = getNonPrototypeParentGripValue(item); - if (parentGrip) { + const targetGrip = getParentGripValue(item); + const receiverGrip = getNonPrototypeParentGripValue(item); + if (targetGrip && receiverGrip) { Object.assign(repProps, { onInvokeGetterButtonClick: () => - this.props.invokeGetter(item, parentGrip, item.name) + this.props.invokeGetter( + item, + targetGrip, + receiverGrip.actor, + item.name + ) }); } } return { label, value: Utils.renderRep(item, repProps) };
--- a/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/tests/component/__snapshots__/classnames.js.snap +++ b/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/tests/component/__snapshots__/classnames.js.snap @@ -4,22 +4,17 @@ exports[`ObjectInspector - classnames ha <div className="tree object-inspector" onBlur={[Function]} onFocus={[Function]} onKeyDown={[Function]} onKeyPress={[Function]} onKeyUp={[Function]} role="tree" - style={ - Object { - "margin": 0, - "padding": 0, - } - } + style={Object {}} tabIndex="0" > <div aria-level={1} className="tree-node" data-expandable={false} id="root" onClick={[Function]} @@ -53,22 +48,17 @@ exports[`ObjectInspector - classnames ha <div className="tree inline object-inspector" onBlur={[Function]} onFocus={[Function]} onKeyDown={[Function]} onKeyPress={[Function]} onKeyUp={[Function]} role="tree" - style={ - Object { - "margin": 0, - "padding": 0, - } - } + style={Object {}} tabIndex="0" > <div aria-level={1} className="tree-node" data-expandable={false} id="root" onClick={[Function]} @@ -102,22 +92,17 @@ exports[`ObjectInspector - classnames ha <div className="tree nowrap object-inspector" onBlur={[Function]} onFocus={[Function]} onKeyDown={[Function]} onKeyPress={[Function]} onKeyUp={[Function]} role="tree" - style={ - Object { - "margin": 0, - "padding": 0, - } - } + style={Object {}} tabIndex="0" > <div aria-level={1} className="tree-node" data-expandable={false} id="root" onClick={[Function]}
--- a/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/tests/component/__snapshots__/window.js.snap +++ b/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/tests/component/__snapshots__/window.js.snap @@ -4,22 +4,17 @@ exports[`ObjectInspector - dimTopLevelWi <div className="tree object-inspector" onBlur={[Function]} onFocus={[Function]} onKeyDown={[Function]} onKeyPress={[Function]} onKeyUp={[Function]} role="tree" - style={ - Object { - "margin": 0, - "padding": 0, - } - } + style={Object {}} tabIndex="0" > <div aria-expanded={false} aria-level={1} className="tree-node" data-expandable={true} id="Symbol(window)" @@ -63,22 +58,17 @@ exports[`ObjectInspector - dimTopLevelWi aria-activedescendant="Symbol(root)" className="tree object-inspector" onBlur={[Function]} onFocus={[Function]} onKeyDown={[Function]} onKeyPress={[Function]} onKeyUp={[Function]} role="tree" - style={ - Object { - "margin": 0, - "padding": 0, - } - } + style={Object {}} tabIndex="0" > <div aria-expanded={true} aria-level={1} className="tree-node focused" data-expandable={true} id="Symbol(root)" @@ -149,22 +139,17 @@ exports[`ObjectInspector - dimTopLevelWi <div className="tree object-inspector" onBlur={[Function]} onFocus={[Function]} onKeyDown={[Function]} onKeyPress={[Function]} onKeyUp={[Function]} role="tree" - style={ - Object { - "margin": 0, - "padding": 0, - } - } + style={Object {}} tabIndex="0" > <div aria-expanded={false} aria-level={1} className="tree-node" data-expandable={true} id="Symbol(window)" @@ -208,22 +193,17 @@ exports[`ObjectInspector - dimTopLevelWi aria-activedescendant="Symbol(window)" className="tree object-inspector" onBlur={[Function]} onFocus={[Function]} onKeyDown={[Function]} onKeyPress={[Function]} onKeyUp={[Function]} role="tree" - style={ - Object { - "margin": 0, - "padding": 0, - } - } + style={Object {}} tabIndex="0" > <div aria-expanded={true} aria-level={1} className="tree-node focused" data-expandable={true} id="Symbol(window)"
--- a/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/utils/node.js +++ b/devtools/client/debugger/new/packages/devtools-reps/src/object-inspector/utils/node.js @@ -872,23 +872,36 @@ function getClosestNonBucketNode(item: N const parent = getParent(item); if (!parent) { return null; } return getClosestNonBucketNode(parent); } -function getNonPrototypeParentGripValue(item: Node | null): Node | null { +function getParentGripNode(item: Node | null): Node | null { const parentNode = getParent(item); if (!parentNode) { return null; } - const parentGripNode = getClosestGripNode(parentNode); + return getClosestGripNode(parentNode); +} + +function getParentGripValue(item: Node | null): any { + const parentGripNode = getParentGripNode(item); + if (!parentGripNode) { + return null; + } + + return getValue(parentGripNode); +} + +function getNonPrototypeParentGripValue(item: Node | null): Node | null { + const parentGripNode = getParentGripNode(item); if (!parentGripNode) { return null; } if (getType(parentGripNode) === NODE_TYPES.PROTOTYPE) { return getNonPrototypeParentGripValue(parentGripNode); } @@ -900,16 +913,17 @@ module.exports = { createGetterNode, createSetterNode, getActor, getChildren, getChildrenWithEvaluations, getClosestGripNode, getClosestNonBucketNode, getParent, + getParentGripValue, getNonPrototypeParentGripValue, getNumericalPropertiesCount, getValue, makeNodesForEntries, makeNodesForPromiseProperties, makeNodesForProperties, makeNumericalBuckets, nodeHasAccessors,
--- a/devtools/client/debugger/new/packages/devtools-reps/src/reps/error.js +++ b/devtools/client/debugger/new/packages/devtools-reps/src/reps/error.js @@ -52,17 +52,17 @@ function ErrorRep(props) { } else { content.push(`${name}: "${preview.message}"`); } if (preview.stack && props.mode !== MODE.TINY) { const stacktrace = props.renderStacktrace ? props.renderStacktrace(parseStackString(preview.stack)) : getStacktraceElements(props, preview); - content.push("\n", stacktrace); + content.push(stacktrace); } return span( { "data-link-actor-id": object.actor, className: "objectBox-stackTrace" }, content
--- a/devtools/client/debugger/new/packages/devtools-reps/src/reps/stubs/symbol.js +++ b/devtools/client/debugger/new/packages/devtools-reps/src/reps/stubs/symbol.js @@ -9,9 +9,20 @@ stubs.set("Symbol", { name: "foo" }); stubs.set("SymbolWithoutIdentifier", { type: "symbol", actor: "server1.conn1.child1/symbol2" }); +stubs.set("SymbolWithLongString", { + type: "symbol", + actor: "server1.conn1.child1/symbol1", + name: { + type: "longString", + initial: "aa".repeat(10000), + length: 20000, + actor: "server1.conn1.child1/longString58" + } +}); + module.exports = stubs;
--- a/devtools/client/debugger/new/packages/devtools-reps/src/reps/symbol.js +++ b/devtools/client/debugger/new/packages/devtools-reps/src/reps/symbol.js @@ -3,35 +3,50 @@ * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ // Dependencies const PropTypes = require("prop-types"); const { getGripType, wrapRender } = require("./rep-utils"); const dom = require("react-dom-factories"); +const { rep: StringRep } = require("./string"); const { span } = dom; +const MAX_STRING_LENGTH = 50; + /** * Renders a symbol. */ SymbolRep.propTypes = { object: PropTypes.object.isRequired }; function SymbolRep(props) { const { className = "objectBox objectBox-symbol", object } = props; const { name } = object; + let symbolText = name || ""; + if (name && name.type && name.type === "longString") { + symbolText = StringRep({ + object: symbolText, + shouldCrop: true, + cropLimit: MAX_STRING_LENGTH, + useQuotes: false + }); + } + return span( { className, "data-link-actor-id": object.actor }, - `Symbol(${name || ""})` + "Symbol(", + symbolText, + ")" ); } function supportsObject(object, noGrip = false) { return getGripType(object, noGrip) == "symbol"; } // Exports from this module
--- a/devtools/client/debugger/new/packages/devtools-reps/src/reps/tests/__snapshots__/error.js.snap +++ b/devtools/client/debugger/new/packages/devtools-reps/src/reps/tests/__snapshots__/error.js.snap @@ -1,18 +1,16 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`Error - Eval error renders with expected text for an EvalError 1`] = ` <span className="objectBox-stackTrace" data-link-actor-id="server1.conn1.child1/obj1022" > EvalError: "EvalError message" - - <span className="objectBox-stackTrace-grid" key="stack" > <span className="objectBox-stackTrace-fn" key="fn0" @@ -33,18 +31,16 @@ exports[`Error - Eval error renders with `; exports[`Error - Internal error renders with expected text for an InternalError 1`] = ` <span className="objectBox-stackTrace" data-link-actor-id="server1.conn1.child1/obj1023" > InternalError: "InternalError message" - - <span className="objectBox-stackTrace-grid" key="stack" > <span className="objectBox-stackTrace-fn" key="fn0" @@ -65,18 +61,16 @@ exports[`Error - Internal error renders `; exports[`Error - Multi line stack error renders with expected text for Error object 1`] = ` <span className="objectBox-stackTrace" data-link-actor-id="server1.conn1.child1/obj1021" > Error: "bar" - - <span className="objectBox-stackTrace-grid" key="stack" > <span className="objectBox-stackTrace-fn" key="fn0" @@ -129,18 +123,16 @@ exports[`Error - Multi line stack error `; exports[`Error - Range error renders with expected text for RangeError 1`] = ` <span className="objectBox-stackTrace" data-link-actor-id="server1.conn1.child1/obj1024" > RangeError: "RangeError message" - - <span className="objectBox-stackTrace-grid" key="stack" > <span className="objectBox-stackTrace-fn" key="fn0" @@ -161,18 +153,16 @@ exports[`Error - Range error renders wit `; exports[`Error - Reference error renders with expected text for ReferenceError 1`] = ` <span className="objectBox-stackTrace" data-link-actor-id="server1.conn1.child1/obj1025" > ReferenceError: "ReferenceError message" - - <span className="objectBox-stackTrace-grid" key="stack" > <span className="objectBox-stackTrace-fn" key="fn0" @@ -193,18 +183,16 @@ exports[`Error - Reference error renders `; exports[`Error - Simple error renders with expected text for simple error 1`] = ` <span className="objectBox-stackTrace" data-link-actor-id="server1.conn1.child1/obj1020" > Error: "Error message" - - <span className="objectBox-stackTrace-grid" key="stack" > <span className="objectBox-stackTrace-fn" key="fn0" @@ -225,18 +213,16 @@ exports[`Error - Simple error renders wi `; exports[`Error - Syntax error renders with expected text for SyntaxError 1`] = ` <span className="objectBox-stackTrace" data-link-actor-id="server1.conn1.child1/obj1026" > SyntaxError: "SyntaxError message" - - <span className="objectBox-stackTrace-grid" key="stack" > <span className="objectBox-stackTrace-fn" key="fn0" @@ -257,18 +243,16 @@ exports[`Error - Syntax error renders wi `; exports[`Error - Type error renders with expected text for TypeError 1`] = ` <span className="objectBox-stackTrace" data-link-actor-id="server1.conn1.child1/obj1027" > TypeError: "TypeError message" - - <span className="objectBox-stackTrace-grid" key="stack" > <span className="objectBox-stackTrace-fn" key="fn0" @@ -289,18 +273,16 @@ exports[`Error - Type error renders with `; exports[`Error - URI error renders with expected text for URIError 1`] = ` <span className="objectBox-stackTrace" data-link-actor-id="server1.conn1.child1/obj1028" > URIError: "URIError message" - - <span className="objectBox-stackTrace-grid" key="stack" > <span className="objectBox-stackTrace-fn" key="fn0" @@ -330,18 +312,16 @@ exports[`Error - base-loader.js renders `; exports[`Error - base-loader.js renders as expected without mode 1`] = ` <span className="objectBox-stackTrace" data-link-actor-id="server1.conn1.child1/obj1020" > Error: "Error message" - - <span className="objectBox-stackTrace-grid" key="stack" > <span className="objectBox-stackTrace-fn" key="fn0" @@ -410,18 +390,16 @@ exports[`Error - base-loader.js renders `; exports[`Error - longString stacktrace - cut-off location renders as expected 1`] = ` <span className="objectBox-stackTrace" data-link-actor-id="server1.conn1.child1/obj33" > InternalError: "too much recursion" - - <span className="objectBox-stackTrace-grid" key="stack" > <span className="objectBox-stackTrace-fn" key="fn0" @@ -538,18 +516,16 @@ exports[`Error - longString stacktrace - `; exports[`Error - longString stacktrace renders as expected 1`] = ` <span className="objectBox-stackTrace" data-link-actor-id="server1.conn2.child1/obj33" > Error: "" - - <span className="objectBox-stackTrace-grid" key="stack" > <span className="objectBox-stackTrace-fn" key="fn0" @@ -714,18 +690,16 @@ exports[`Error - longString stacktrace r `; exports[`Error - renderStacktrace prop uses renderStacktrace prop when provided 1`] = ` <span className="objectBox-stackTrace" data-link-actor-id="server1.conn1.child1/obj1021" > Error: "bar" - - <li className="frame" > Function errorBar called from debugger eval code:6:15 </li> <li className="frame" @@ -743,18 +717,16 @@ exports[`Error - renderStacktrace prop u `; exports[`Error - renderStacktrace prop uses renderStacktrace with longString errors too 1`] = ` <span className="objectBox-stackTrace" data-link-actor-id="server1.conn1.child1/obj33" > InternalError: "too much recursion" - - <li className="frame" > Function execute/AppComponent</AppComponent.prototype.doStuff called from https://angular-3eqab4.stackblitz.io/tmp/appfiles/src/app/app.component.ts:32:1 </li> <li className="frame"
--- a/devtools/client/debugger/new/packages/devtools-reps/src/reps/tests/symbol.js +++ b/devtools/client/debugger/new/packages/devtools-reps/src/reps/tests/symbol.js @@ -32,8 +32,25 @@ describe("test Symbol without identifier object: stub }) ); expect(renderedComponent.text()).toEqual("Symbol()"); expectActorAttribute(renderedComponent, stub.actor); }); }); + +describe("test Symbol with long string", () => { + const stub = stubs.get("SymbolWithLongString"); + + it("renders the expected content", () => { + const renderedComponent = shallow( + Rep({ + object: stub + }) + ); + + expect(renderedComponent.text()).toEqual( + "Symbol(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa…)" + ); + expectActorAttribute(renderedComponent, stub.actor); + }); +});
new file mode 100644 --- /dev/null +++ b/devtools/client/debugger/new/packages/devtools-reps/webpack.config.js @@ -0,0 +1,35 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +const { toolboxConfig } = require("devtools-launchpad/index"); +const config = require("./config"); +const ObjectRestSpreadPlugin = require("@sucrase/webpack-object-rest-spread-plugin"); + +const path = require("path"); +const projectPath = path.join(__dirname, "src"); + +let webpackConfig = { + entry: { + reps: [path.join(projectPath, "launchpad/index.js")], + }, + + output: { + path: path.join(__dirname, "assets/build"), + filename: "[name].js", + publicPath: "/assets/build" + }, + + plugins: [new ObjectRestSpreadPlugin()], + + resolve: { + alias: { + "devtools/client/shared/vendor/react": "react", + "devtools/client/shared/vendor/react-dom": "react-dom", + "devtools/client/shared/vendor/react-dom-factories": "react-dom-factories", + "devtools/client/shared/vendor/react-prop-types": "prop-types", + } + } +}; + +module.exports = toolboxConfig(webpackConfig, config);
--- a/devtools/client/debugger/new/packages/devtools-source-map/src/index.js +++ b/devtools/client/debugger/new/packages/devtools-source-map/src/index.js @@ -1,64 +1,127 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ // @flow const { + workerUtils: { WorkerDispatcher } +} = require("devtools-utils"); + +import type { SourceLocation, Source, SourceId } from "debugger-html"; +import type { SourceMapConsumer } from "source-map"; +import type { locationOptions } from "./source-map"; + +export const dispatcher = new WorkerDispatcher(); + +const _getGeneratedRanges = dispatcher.task("getGeneratedRanges", { + queue: true +}); + +const _getGeneratedLocation = dispatcher.task("getGeneratedLocation", { queue: true }); +const _getAllGeneratedLocations = dispatcher.task("getAllGeneratedLocations", { queue: true }); + + +export const setAssetRootURL = async (assetRoot: string): Promise<void> => + dispatcher.invoke("setAssetRootURL", assetRoot); + +export const getOriginalURLs = async ( + generatedSource: Source +): Promise<SourceMapConsumer> => + dispatcher.invoke("getOriginalURLs", generatedSource); + +export const hasOriginalURL = async (url: string): Promise<boolean> => + dispatcher.invoke("hasOriginalURL", url); + +export const getOriginalRanges = async ( + sourceId: SourceId, + url: string +): Promise< + Array<{ + line: number, + columnStart: number, + columnEnd: number + }> +> => dispatcher.invoke("getOriginalRanges", sourceId, url); +export const getGeneratedRanges = async ( + location: SourceLocation, + originalSource: Source +): Promise< + Array<{ + line: number, + columnStart: number, + columnEnd: number + }> +> => + _getGeneratedRanges(location, originalSource); + +export const getGeneratedLocation = async ( + location: SourceLocation, + originalSource: Source +): Promise<SourceLocation> => _getGeneratedLocation(location,originalSource); + +export const getAllGeneratedLocations = async ( + location: SourceLocation, + originalSource: Source +): Promise<Array<SourceLocation>> => _getAllGeneratedLocations( + location, + originalSource +); + +export const getOriginalLocation = async ( + location: SourceLocation, + options: locationOptions = {} +): Promise<SourceLocation> => + dispatcher.invoke("getOriginalLocation", location, options); + +export const getFileGeneratedRange = async ( + originalSource: Source +): Promise<?{ start: any, end: any }> => + dispatcher.invoke("getFileGeneratedRange", originalSource); + +export const getLocationScopes = dispatcher.task("getLocationScopes"); + +export const getOriginalSourceText = async ( + originalSource: Source +): Promise<?{ + text: string, + contentType: string +}> => dispatcher.invoke("getOriginalSourceText", originalSource); + +export const applySourceMap = async ( + generatedId: string, + url: string, + code: string, + mappings: Object +): Promise<void> => + dispatcher.invoke("applySourceMap", generatedId, url, code, mappings); + +export const clearSourceMaps = async (): Promise<void> => + dispatcher.invoke("clearSourceMaps"); + +export const hasMappedSource = async ( + location: SourceLocation +): Promise<boolean> => dispatcher.invoke("hasMappedSource", location); + +export const getOriginalStackFrames = async ( + generatedLocation: SourceLocation +): Promise<?Array<{ + displayName: string, + location?: SourceLocation +}>> => dispatcher.invoke("getOriginalStackFrames", generatedLocation); + +export { originalToGeneratedId, generatedToOriginalId, isGeneratedId, isOriginalId -} = require("./utils"); - -const { - workerUtils: { WorkerDispatcher } -} = require("devtools-utils"); - -const dispatcher = new WorkerDispatcher(); +} from "./utils"; -const setAssetRootURL = dispatcher.task("setAssetRootURL"); -const getOriginalURLs = dispatcher.task("getOriginalURLs"); -const getOriginalRanges = dispatcher.task("getOriginalRanges"); -const getGeneratedRanges = dispatcher.task("getGeneratedRanges", { - queue: true -}); -const getGeneratedLocation = dispatcher.task("getGeneratedLocation", { - queue: true -}); -const getAllGeneratedLocations = dispatcher.task("getAllGeneratedLocations", { - queue: true -}); -const getOriginalLocation = dispatcher.task("getOriginalLocation"); -const getFileGeneratedRange = dispatcher.task("getFileGeneratedRange"); -const getLocationScopes = dispatcher.task("getLocationScopes"); -const getOriginalSourceText = dispatcher.task("getOriginalSourceText"); -const applySourceMap = dispatcher.task("applySourceMap"); -const clearSourceMaps = dispatcher.task("clearSourceMaps"); -const hasMappedSource = dispatcher.task("hasMappedSource"); -const getOriginalStackFrames = dispatcher.task("getOriginalStackFrames"); +export const startSourceMapWorker = (url: string, assetRoot: string) => { + dispatcher.start(url); + setAssetRootURL(assetRoot); +}; +export const stopSourceMapWorker = dispatcher.stop.bind(dispatcher); -module.exports = { - originalToGeneratedId, - generatedToOriginalId, - isGeneratedId, - isOriginalId, - hasMappedSource, - getOriginalURLs, - getOriginalRanges, - getGeneratedRanges, - getGeneratedLocation, - getAllGeneratedLocations, - getOriginalLocation, - getFileGeneratedRange, - getLocationScopes, - getOriginalSourceText, - applySourceMap, - clearSourceMaps, - getOriginalStackFrames, - startSourceMapWorker(url: string, assetRoot: string) { - dispatcher.start(url); - setAssetRootURL(assetRoot); - }, - stopSourceMapWorker: dispatcher.stop.bind(dispatcher) -}; +import * as self from "devtools-source-map"; +export default self;
--- a/devtools/client/debugger/new/packages/devtools-source-map/src/source-map.js +++ b/devtools/client/debugger/new/packages/devtools-source-map/src/source-map.js @@ -9,42 +9,57 @@ * @module utils/source-map-worker */ const { networkRequest } = require("devtools-utils"); const { SourceMapConsumer, SourceMapGenerator } = require("source-map"); const { createConsumer } = require("./utils/createConsumer"); const assert = require("./utils/assert"); -const { fetchSourceMap } = require("./utils/fetchSourceMap"); +const { + fetchSourceMap, + hasOriginalURL, + clearOriginalURLs +} = require("./utils/fetchSourceMap"); const { getSourceMap, setSourceMap, clearSourceMaps: clearSourceMapsRequests } = require("./utils/sourceMapRequests"); const { originalToGeneratedId, generatedToOriginalId, isGeneratedId, isOriginalId, getContentType } = require("./utils"); const { clearWasmXScopes } = require("./utils/wasmXScopes"); import type { SourceLocation, Source, SourceId } from "debugger-html"; -async function getOriginalURLs(generatedSource: Source) { +async function getOriginalURLs( + generatedSource: Source +): Promise<SourceMapConsumer> { const map = await fetchSourceMap(generatedSource); return map && map.sources; } const COMPUTED_SPANS = new WeakSet(); const SOURCE_MAPPINGS = new WeakMap(); -async function getOriginalRanges(sourceId: SourceId, url: string) { +async function getOriginalRanges( + sourceId: SourceId, + url: string +): Promise< + Array<{ + line: number, + columnStart: number, + columnEnd: number + }> +> { if (!isOriginalId(sourceId)) { return []; } const generatedSourceId = originalToGeneratedId(sourceId); const map = await getSourceMap(generatedSourceId); if (!map) { return []; @@ -226,17 +241,17 @@ async function getAllGeneratedLocations( return positions.map(({ line, column }) => ({ sourceId: generatedSourceId, line, column })); } -type locationOptions = { +export type locationOptions = { search?: "LEAST_UPPER_BOUND" | "GREATEST_LOWER_BOUND" }; async function getOriginalLocation( location: SourceLocation, { search }: locationOptions = {} ): Promise<SourceLocation> { if (!isGeneratedId(location.sourceId)) { return location; @@ -280,17 +295,22 @@ async function getOriginalLocation( return { sourceId: generatedToOriginalId(location.sourceId, sourceUrl), sourceUrl, line, column }; } -async function getOriginalSourceText(originalSource: Source) { +async function getOriginalSourceText( + originalSource: Source +): Promise<?{ + text: string, + contentType: string +}> { assert(isOriginalId(originalSource.id), "Source is not an original source"); const generatedSourceId = originalToGeneratedId(originalSource.id); const map = await getSourceMap(generatedSourceId); if (!map) { return null; } @@ -301,17 +321,19 @@ async function getOriginalSourceText(ori } return { text, contentType: getContentType(originalSource.url || "") }; } -async function getFileGeneratedRange(originalSource: Source) { +async function getFileGeneratedRange( + originalSource: Source +): Promise<?{ start: any, end: any }> { assert(isOriginalId(originalSource.id), "Source is not an original source"); const map = await getSourceMap(originalToGeneratedId(originalSource.id)); if (!map) { return; } const start = map.generatedPositionFor({ @@ -355,20 +377,22 @@ function applySourceMap( const map = createConsumer(generator.toJSON()); setSourceMap(generatedId, Promise.resolve(map)); } function clearSourceMaps() { clearSourceMapsRequests(); clearWasmXScopes(); + clearOriginalURLs(); } module.exports = { getOriginalURLs, + hasOriginalURL, getOriginalRanges, getGeneratedRanges, getGeneratedLocation, getAllGeneratedLocations, getOriginalLocation, getOriginalSourceText, getFileGeneratedRange, applySourceMap,
--- a/devtools/client/debugger/new/packages/devtools-source-map/src/utils/convertToJSON.js +++ b/devtools/client/debugger/new/packages/devtools-source-map/src/utils/convertToJSON.js @@ -12,28 +12,31 @@ let utf8Decoder; function convertDwarf(wasm, instance) { const { memory, alloc_mem, free_mem, convert_dwarf } = instance.exports; const wasmPtr = alloc_mem(wasm.byteLength); new Uint8Array(memory.buffer, wasmPtr, wasm.byteLength).set( new Uint8Array(wasm) ); const resultPtr = alloc_mem(12); const enableXScopes = true; - convert_dwarf( + const success = convert_dwarf( wasmPtr, wasm.byteLength, resultPtr, resultPtr + 4, enableXScopes ); free_mem(wasmPtr); const resultView = new DataView(memory.buffer, resultPtr, 12); const outputPtr = resultView.getUint32(0, true), outputLen = resultView.getUint32(4, true); free_mem(resultPtr); + if (!success) { + throw new Error("Unable to convert from DWARF sections"); + } if (!utf8Decoder) { utf8Decoder = new TextDecoder("utf-8"); } const output = utf8Decoder.decode( new Uint8Array(memory.buffer, outputPtr, outputLen) ); free_mem(outputPtr); return output;
--- a/devtools/client/debugger/new/packages/devtools-source-map/src/utils/fetchSourceMap.js +++ b/devtools/client/debugger/new/packages/devtools-source-map/src/utils/fetchSourceMap.js @@ -8,16 +8,27 @@ const { networkRequest } = require("devt const { getSourceMap, setSourceMap } = require("./sourceMapRequests"); const { WasmRemap } = require("./wasmRemap"); const { SourceMapConsumer } = require("source-map"); const { convertToJSON } = require("./convertToJSON"); const { createConsumer } = require("./createConsumer"); import type { Source } from "debugger-html"; +// URLs which have been seen in a completed source map request. +const originalURLs = new Set(); + +function clearOriginalURLs() { + originalURLs.clear(); +} + +function hasOriginalURL(url: string): boolean { + return originalURLs.has(url); +} + function _resolveSourceMapURL(source: Source) { const { url = "", sourceMapURL = "" } = source; if (!url) { // If the source doesn't have a URL, don't resolve anything. return { sourceMapURL, baseURL: sourceMapURL }; } @@ -50,20 +61,24 @@ async function _resolveAndFetch(generate map = new WasmRemap(map); // Check if experimental scope info exists. if (fetched.content.includes("x-scopes")) { const parsedJSON = JSON.parse(fetched.content); map.xScopes = parsedJSON["x-scopes"]; } } + if (map && map.sources) { + map.sources.forEach(url => originalURLs.add(url)); + } + return map; } -function fetchSourceMap(generatedSource: Source) { +function fetchSourceMap(generatedSource: Source): SourceMapConsumer { const existingRequest = getSourceMap(generatedSource.id); // If it has already been requested, return the request. Make sure // to do this even if sourcemapping is turned off, because // pretty-printing uses sourcemaps. // // An important behavior here is that if it's in the middle of // requesting it, all subsequent calls will block on the initial @@ -79,9 +94,9 @@ function fetchSourceMap(generatedSource: // Fire off the request, set it in the cache, and return it. const req = _resolveAndFetch(generatedSource); // Make sure the cached promise does not reject, because we only // want to report the error once. setSourceMap(generatedSource.id, req.catch(() => null)); return req; } -module.exports = { fetchSourceMap }; +module.exports = { fetchSourceMap, hasOriginalURL, clearOriginalURLs };
--- a/devtools/client/debugger/new/packages/devtools-source-map/src/utils/index.js +++ b/devtools/client/debugger/new/packages/devtools-source-map/src/utils/index.js @@ -11,17 +11,17 @@ function originalToGeneratedId(originalI return match ? match[1] : ""; } function generatedToOriginalId(generatedId: string, url: string) { return `${generatedId}/originalSource-${md5(url)}`; } function isOriginalId(id: string) { - return !!id.match(/\/originalSource/); + return /\/originalSource/.test(id); } function isGeneratedId(id: string) { return !isOriginalId(id); } /** * Trims the query part or reference identifier of a URL string, if necessary. @@ -57,17 +57,17 @@ const contentMap = { /** * Returns the content type for the specified URL. If no specific * content type can be determined, "text/plain" is returned. * * @return String * The content type. */ -function getContentType(url: string) { +function getContentType(url: string): string { url = trimUrlQuery(url); const dot = url.lastIndexOf("."); if (dot >= 0) { const name = url.substring(dot + 1); if (name in contentMap) { return contentMap[name]; } }
--- a/devtools/client/debugger/new/packages/devtools-source-map/src/utils/wasmXScopes.js +++ b/devtools/client/debugger/new/packages/devtools-source-map/src/utils/wasmXScopes.js @@ -8,33 +8,50 @@ import type { SourceLocation, SourceId } from "debugger-html"; const { getSourceMap } = require("./sourceMapRequests"); const { generatedToOriginalId } = require("./index"); const xScopes = new Map(); type XScopeItem = any; -type XScopeItemsIndex = Map<string, XScopeItem>; +type XScopeItemsIndex = Map<string | number, XScopeItem>; function indexLinkingNames(items: XScopeItem[]): XScopeItemsIndex { const result = new Map(); let queue = [...items]; while (queue.length > 0) { const item = queue.shift(); - if ("linkage_name" in item) { + if ("uid" in item) { + result.set(item.uid, item); + } else if ("linkage_name" in item) { + // TODO the linkage_name string value is used for compatibility + // with old format. Remove in favour of the uid referencing. result.set(item.linkage_name, item); } if ("children" in item) { queue = [...queue, ...item.children]; } } return result; } +function getIndexedItem( + index: XScopeItemsIndex, + key: string | { uid: number } +): XScopeItem { + if (typeof key === "object" && key != null) { + return index.get(key.uid); + } + if (typeof key === "string") { + return index.get(key); + } + return null; +} + type XScopeData = { code_section_offset: number, debug_info: Array<XScopeItem>, idIndex: XScopeItemsIndex, sources: Array<string> }; async function getXScopes(sourceId: SourceId): Promise<?XScopeData> { @@ -107,17 +124,17 @@ function filterScopes( id: item.linkage_name, name: item.name }; result = [...result, s, ...filterScopes(item.children, pc, s, index)]; } break; case "inlined_subroutine": if (isInRange(item, pc)) { - const linkedItem = index.get(item.abstract_origin); + const linkedItem = getIndexedItem(index, item.abstract_origin); const s: FoundScope = { id: item.abstract_origin, name: linkedItem ? linkedItem.name : void 0 }; if (lastItem) { lastItem.file = item.call_file; lastItem.line = item.call_line; }
--- a/devtools/client/debugger/new/packages/devtools-source-map/src/worker.js +++ b/devtools/client/debugger/new/packages/devtools-source-map/src/worker.js @@ -1,15 +1,16 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ // @flow const { getOriginalURLs, + hasOriginalURL, getOriginalRanges, getGeneratedRanges, getGeneratedLocation, getAllGeneratedLocations, getOriginalLocation, getOriginalSourceText, getFileGeneratedRange, hasMappedSource, @@ -24,16 +25,17 @@ const { workerUtils: { workerHandler } } = require("devtools-utils"); // The interface is implemented in source-map to be // easier to unit test. self.onmessage = workerHandler({ setAssetRootURL, getOriginalURLs, + hasOriginalURL, getOriginalRanges, getGeneratedRanges, getGeneratedLocation, getAllGeneratedLocations, getOriginalLocation, getOriginalSourceText, getOriginalStackFrames, getFileGeneratedRange,
index ed1fd3bdbffeda5d4d0450c45e763f085315887a..2293d179f04946510634635153698be765cd5eed GIT binary patch literal 283483 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 {D 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 H)b)P=B16m|
--- a/devtools/client/debugger/new/src/actions/breakpoints/addBreakpoint.js +++ b/devtools/client/debugger/new/src/actions/breakpoints/addBreakpoint.js @@ -1,34 +1,35 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ // @flow -import { isOriginalId } from "devtools-source-map"; import { - locationMoved, breakpointExists, assertBreakpoint, createBreakpoint, getASTLocation, assertLocation, makeBreakpointId, makeSourceActorLocation } from "../../utils/breakpoint"; import { PROMISE } from "../utils/middleware/promise"; import { getSource, getSourceActors, getSymbols, + getFirstVisibleBreakpointPosition } from "../../selectors"; import { getGeneratedLocation } from "../../utils/source-maps"; import { getTextAtPosition } from "../../utils/source"; import { recordEvent } from "../../utils/telemetry"; +import { features } from "../../utils/prefs"; +import { setBreakpointPositions } from "./breakpointPositions"; import type { BreakpointOptions, Breakpoint, SourceLocation } from "../../types"; import type { ThunkArgs } from "../types"; @@ -62,68 +63,50 @@ async function addBreakpointPromise(getS } assertLocation(location); assertLocation(generatedLocation); if (breakpointExists(state, location)) { const newBreakpoint = { ...breakpoint, location, generatedLocation }; assertBreakpoint(newBreakpoint); - return { breakpoint: newBreakpoint }; + return newBreakpoint; } const sourceActors = getSourceActors(state, generatedSource.id); - const newGeneratedLocation = { ...generatedLocation }; for (const sourceActor of sourceActors) { const sourceActorLocation = makeSourceActorLocation( sourceActor, generatedLocation ); - const { actualLocation } = await client.setBreakpoint( - sourceActorLocation, - breakpoint.options, - isOriginalId(location.sourceId) - ); - newGeneratedLocation.line = actualLocation.line; - newGeneratedLocation.column = actualLocation.column; + await client.setBreakpoint(sourceActorLocation, breakpoint.options); } - const newLocation = await sourceMaps.getOriginalLocation( - newGeneratedLocation - ); - const symbols = getSymbols(getState(), source); - const astLocation = await getASTLocation(source, symbols, newLocation); + const astLocation = await getASTLocation(source, symbols, location); const originalText = getTextAtPosition(source, location); - const text = getTextAtPosition(generatedSource, newGeneratedLocation); + const text = getTextAtPosition(generatedSource, generatedLocation); const newBreakpoint = { id: makeBreakpointId(generatedLocation), disabled: false, loading: false, options: breakpoint.options, - location: newLocation, + location, astLocation, - generatedLocation: newGeneratedLocation, + generatedLocation, text, originalText }; assertBreakpoint(newBreakpoint); - const previousLocation = locationMoved(location, newLocation) - ? location - : null; - - return { - breakpoint: newBreakpoint, - previousLocation - }; + return newBreakpoint; } export function addHiddenBreakpoint(location: SourceLocation) { return ({ dispatch }: ThunkArgs) => { return dispatch(addBreakpoint(location, { hidden: true })); }; } @@ -139,32 +122,36 @@ export function enableBreakpoint(breakpo return dispatch({ type: "ENABLE_BREAKPOINT", breakpoint: enabledBreakpoint, [PROMISE]: addBreakpointPromise(getState, client, sourceMaps, breakpoint) }); }; } -/** - * Add a new breakpoint - * - * @memberof actions/breakpoints - * @static - * @param {BreakpointOptions} options Any options for the new breakpoint. - */ - export function addBreakpoint( location: SourceLocation, options: BreakpointOptions = {} ) { - return ({ dispatch, getState, sourceMaps, client }: ThunkArgs) => { + return async ({ dispatch, getState, sourceMaps, client }: ThunkArgs) => { recordEvent("add_breakpoint"); + let breakpointPosition = location; + if (features.columnBreakpoints && location.column === undefined) { + await dispatch(setBreakpointPositions(location)); + breakpointPosition = getFirstVisibleBreakpointPosition( + getState(), + location + ); + } - const breakpoint = createBreakpoint(location, options); + if (!breakpointPosition) { + return; + } + + const breakpoint = createBreakpoint(breakpointPosition, options); return dispatch({ type: "ADD_BREAKPOINT", breakpoint, [PROMISE]: addBreakpointPromise(getState, client, sourceMaps, breakpoint) }); }; }
new file mode 100644 --- /dev/null +++ b/devtools/client/debugger/new/src/actions/breakpoints/breakpointPositions.js @@ -0,0 +1,37 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ + +// @flow + +import { + getSourceActors, + getBreakpointPositionsForLine +} from "../../selectors"; + +import { makeSourceActorLocation } from "../../utils/breakpoint"; + +import type { SourceLocation } from "../../types"; +import type { ThunkArgs } from "../../actions/types"; + +export function setBreakpointPositions(location: SourceLocation) { + return async ({ getState, dispatch, client }: ThunkArgs) => { + if ( + getBreakpointPositionsForLine( + getState(), + location.sourceId, + location.line + ) + ) { + return; + } + + const sourceActors = getSourceActors(getState(), location.sourceId); + const sourceActor = sourceActors[0]; + + const sourceActorLocation = makeSourceActorLocation(sourceActor, location); + const positions = await client.getBreakpointPositions(sourceActorLocation); + + return dispatch({ type: "ADD_BREAKPOINT_POSITIONS", positions, location }); + }; +}
--- a/devtools/client/debugger/new/src/actions/breakpoints/moz.build +++ b/devtools/client/debugger/new/src/actions/breakpoints/moz.build @@ -4,12 +4,13 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. DIRS += [ ] DebuggerModules( 'addBreakpoint.js', + 'breakpointPositions.js', 'index.js', 'remapLocations.js', 'syncBreakpoint.js', )
--- a/devtools/client/debugger/new/src/actions/breakpoints/syncBreakpoint.js +++ b/devtools/client/debugger/new/src/actions/breakpoints/syncBreakpoint.js @@ -1,26 +1,30 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ // @flow + +import { setBreakpointPositions } from "./breakpointPositions"; import { locationMoved, createBreakpoint, assertBreakpoint, assertPendingBreakpoint, findScopeByName, makeSourceActorLocation } from "../../utils/breakpoint"; import { getGeneratedLocation } from "../../utils/source-maps"; import { getTextAtPosition } from "../../utils/source"; import { originalToGeneratedId, isOriginalId } from "devtools-source-map"; import { getSource, getSourceActors } from "../../selectors"; +import { features } from "../../utils/prefs"; + import type { ThunkArgs, Action } from "../types"; import type { SourceLocation, ASTLocation, PendingBreakpoint, SourceId, Breakpoint @@ -70,16 +74,17 @@ function createSyncData( } // we have three forms of syncing: disabled syncing, existing server syncing // and adding a new breakpoint export async function syncBreakpointPromise( getState: Function, client: Object, sourceMaps: Object, + dispatch: Function, sourceId: SourceId, pendingBreakpoint: PendingBreakpoint ): Promise<BreakpointSyncData | null> { assertPendingBreakpoint(pendingBreakpoint); const source = getSource(getState(), sourceId); const generatedSourceId = isOriginalId(sourceId) @@ -116,20 +121,29 @@ export async function syncBreakpointProm }; const isSameLocation = !locationMoved( generatedLocation, scopedGeneratedLocation ); const sourceActors = getSourceActors(getState(), sourceId); + let possiblePosition = true; + if (features.columnBreakpoints && generatedLocation.column != undefined) { + const { positions } = await dispatch( + setBreakpointPositions(generatedLocation) + ); + if (!positions.includes(generatedLocation.column)) { + possiblePosition = false; + } + } /** ******* CASE 1: No server change ***********/ // early return if breakpoint is disabled or we are in the sameLocation - if (pendingBreakpoint.disabled || isSameLocation) { + if (possiblePosition && (pendingBreakpoint.disabled || isSameLocation)) { // Make sure the breakpoint is installed on all source actors. if (!pendingBreakpoint.disabled) { for (const sourceActor of sourceActors) { const sourceActorLocation = makeSourceActorLocation( sourceActor, generatedLocation ); if (!client.getBreakpointByLocation(sourceActorLocation)) { @@ -161,52 +175,43 @@ export async function syncBreakpointProm sourceActor, generatedLocation ); if (client.getBreakpointByLocation(sourceActorLocation)) { await client.removeBreakpoint(sourceActorLocation); } } + if (!possiblePosition || !scopedGeneratedLocation.line) { + return { previousLocation, breakpoint: null }; + } + /** ******* Case 2: Add New Breakpoint ***********/ // If we are not disabled, set the breakpoint on the server and get // that info so we can set it on our breakpoints. - if (!scopedGeneratedLocation.line) { - return { previousLocation, breakpoint: null }; - } - - const newGeneratedLocation = { ...scopedGeneratedLocation }; for (const sourceActor of sourceActors) { const sourceActorLocation = makeSourceActorLocation( sourceActor, scopedGeneratedLocation ); - const { actualLocation } = await client.setBreakpoint( + await client.setBreakpoint( sourceActorLocation, pendingBreakpoint.options, isOriginalId(sourceId) ); - newGeneratedLocation.line = actualLocation.line; - newGeneratedLocation.column = actualLocation.column; } - // the breakpoint might have slid server side, so we want to get the location - // based on the server's return value - const newLocation = await sourceMaps.getOriginalLocation( - newGeneratedLocation - ); - - const originalText = getTextAtPosition(source, newLocation); - const text = getTextAtPosition(generatedSource, newGeneratedLocation); + const originalText = getTextAtPosition(source, scopedLocation); + const text = getTextAtPosition(generatedSource, scopedGeneratedLocation); return createSyncData( pendingBreakpoint, - newLocation, - newGeneratedLocation, + scopedLocation, + scopedGeneratedLocation, previousLocation, text, originalText ); } /** * Syncing a breakpoint add breakpoint information that is stored, and @@ -221,16 +226,17 @@ export function syncBreakpoint( sourceId: SourceId, pendingBreakpoint: PendingBreakpoint ) { return async ({ dispatch, getState, client, sourceMaps }: ThunkArgs) => { const response = await syncBreakpointPromise( getState, client, sourceMaps, + dispatch, sourceId, pendingBreakpoint ); if (!response) { return; }
--- a/devtools/client/debugger/new/src/actions/breakpoints/tests/__snapshots__/breakpoints.spec.js.snap +++ b/devtools/client/debugger/new/src/actions/breakpoints/tests/__snapshots__/breakpoints.spec.js.snap @@ -1,62 +1,26 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`breakpoints adding a breakpoint to an invalid location adds only one breakpoint with a corrected location 1`] = ` -Object { - "astLocation": Object { - "index": 0, - "name": undefined, - "offset": Object { - "line": 7, - "sourceId": "a", - "sourceUrl": "http://localhost:8000/examples/a", - }, - }, - "disabled": false, - "generatedLocation": Object { - "column": undefined, - "line": 7, - "sourceId": "a", - "sourceUrl": "http://localhost:8000/examples/a", - }, - "id": "a:5:", - "loading": false, - "location": Object { - "line": 7, - "sourceId": "a", - "sourceUrl": "http://localhost:8000/examples/a", - }, - "options": Object { - "condition": null, - "hidden": false, - "logValue": null, - }, - "originalText": "", - "text": "", -} -`; - exports[`breakpoints should add a breakpoint 1`] = ` Array [ Object { "breakpoints": Array [ Object { "astLocation": Object { "index": 0, "name": undefined, "offset": Object { "line": 2, "sourceId": "a", "sourceUrl": "http://localhost:8000/examples/a", }, }, "disabled": false, "generatedLocation": Object { - "column": undefined, "line": 2, "sourceId": "a", "sourceUrl": "http://localhost:8000/examples/a", }, "id": "a:2:", "loading": false, "location": Object { "line": 2, @@ -101,17 +65,16 @@ Object { "offset": Object { "line": 1, "sourceId": "a.js", "sourceUrl": "http://localhost:8000/examples/a.js", }, }, "disabled": false, "generatedLocation": Object { - "column": undefined, "line": 1, "sourceId": "a.js", "sourceUrl": "http://localhost:8000/examples/a.js", }, "id": "a.js:1:", "loading": false, "location": Object { "column": 0, @@ -140,17 +103,16 @@ Array [ "offset": Object { "line": 5, "sourceId": "a", "sourceUrl": "http://localhost:8000/examples/a", }, }, "disabled": true, "generatedLocation": Object { - "column": undefined, "line": 5, "sourceId": "a", "sourceUrl": "http://localhost:8000/examples/a", }, "id": "a:5:", "loading": false, "location": Object { "line": 5,
--- a/devtools/client/debugger/new/src/actions/breakpoints/tests/__snapshots__/syncing.spec.js.snap +++ b/devtools/client/debugger/new/src/actions/breakpoints/tests/__snapshots__/syncing.spec.js.snap @@ -174,17 +174,17 @@ Object { "sourceUrl": "http://localhost:8000/gen.js", }, "id": "magic.js:3:", "loading": false, "location": Object { "column": undefined, "line": 3, "sourceId": "magic.js", - "sourceUrl": "http://localhost:8000/magic.js", + "sourceUrl": "http://localhost:8000/examples/magic.js", }, "options": Object { "condition": null, "hidden": false, "logValue": null, }, "originalText": "", "text": "",
--- a/devtools/client/debugger/new/src/actions/breakpoints/tests/breakpoints.spec.js +++ b/devtools/client/debugger/new/src/actions/breakpoints/tests/breakpoints.spec.js @@ -7,20 +7,17 @@ import { createStore, selectors, actions, makeSource, getTelemetryEvents } from "../../../utils/test-head"; -import { - simulateCorrectThreadClient, - simpleMockThreadClient -} from "../../tests/helpers/threadClient.js"; +import { simpleMockThreadClient } from "../../tests/helpers/threadClient.js"; describe("breakpoints", () => { it("should add a breakpoint", async () => { const { dispatch, getState } = createStore(simpleMockThreadClient); const loc1 = { sourceId: "a", line: 2, sourceUrl: "http://localhost:8000/examples/a" @@ -63,17 +60,17 @@ describe("breakpoints", () => { const loc1 = { sourceId: "a", line: 5, sourceUrl: "http://localhost:8000/examples/a" }; const csr = makeSource("a"); await dispatch(actions.newSource(csr)); await dispatch(actions.loadSourceText(csr.source)); - const { breakpoint } = await dispatch(actions.addBreakpoint(loc1)); + const breakpoint = await dispatch(actions.addBreakpoint(loc1)); await dispatch(actions.disableBreakpoint(breakpoint)); expect(selectors.getBreakpointCount(getState())).toEqual(1); const bp = selectors.getBreakpoint(getState(), loc1); expect(bp && bp.location).toEqual(loc1); expect(selectors.getBreakpointSources(getState())).toMatchSnapshot(); }); @@ -93,41 +90,16 @@ describe("breakpoints", () => { expect(selectors.getBreakpointCount(getState())).toEqual(1); const bp = selectors.getBreakpoint(getState(), loc1); expect(bp && bp.location).toEqual(loc1); await dispatch(actions.addBreakpoint(loc1)); expect(selectors.getBreakpointCount(getState())).toEqual(1); }); - describe("adding a breakpoint to an invalid location", () => { - it("adds only one breakpoint with a corrected location", async () => { - const invalidLocation = { - sourceId: "a", - line: 5, - sourceUrl: "http://localhost:8000/examples/a" - }; - const { - correctedThreadClient, - correctedLocation - } = simulateCorrectThreadClient(2, invalidLocation); - const { dispatch, getState } = createStore(correctedThreadClient); - - const csr = makeSource("a"); - await dispatch(actions.newSource(csr)); - await dispatch(actions.loadSourceText(csr.source)); - - await dispatch(actions.addBreakpoint(invalidLocation)); - const state = getState(); - expect(selectors.getBreakpointCount(state)).toEqual(1); - const bp = selectors.getBreakpoint(state, correctedLocation); - expect(bp).toMatchSnapshot(); - }); - }); - it("should remove a breakpoint", async () => { const { dispatch, getState } = createStore(simpleMockThreadClient); const loc1 = { sourceId: "a", line: 5, sourceUrl: "http://localhost:8000/examples/a" }; @@ -176,17 +148,17 @@ describe("breakpoints", () => { const aCSR = makeSource("a"); await dispatch(actions.newSource(aCSR)); await dispatch(actions.loadSourceText(aCSR.source)); const bCSR = makeSource("b"); await dispatch(actions.newSource(bCSR)); await dispatch(actions.loadSourceText(bCSR.source)); - const { breakpoint } = await dispatch(actions.addBreakpoint(loc1)); + const breakpoint = await dispatch(actions.addBreakpoint(loc1)); await dispatch(actions.addBreakpoint(loc2)); await dispatch(actions.disableBreakpoint(breakpoint)); const bp = selectors.getBreakpoint(getState(), loc1); expect(bp && bp.disabled).toBe(true); }); @@ -197,17 +169,17 @@ describe("breakpoints", () => { line: 5, sourceUrl: "http://localhost:8000/examples/a" }; const aCSR = makeSource("a"); await dispatch(actions.newSource(aCSR)); await dispatch(actions.loadSourceText(aCSR.source)); - const { breakpoint } = await dispatch(actions.addBreakpoint(loc)); + const breakpoint = await dispatch(actions.addBreakpoint(loc)); await dispatch(actions.disableBreakpoint(breakpoint)); let bp = selectors.getBreakpoint(getState(), loc); expect(bp && bp.disabled).toBe(true); await dispatch(actions.enableBreakpoint(breakpoint)); bp = selectors.getBreakpoint(getState(), loc); @@ -333,17 +305,17 @@ describe("breakpoints", () => { const loc = { sourceId: "a", line: 5, sourceUrl: "http://localhost:8000/examples/a" }; await dispatch(actions.newSource(makeSource("a"))); - const { breakpoint } = await dispatch(actions.addBreakpoint(loc)); + const breakpoint = await dispatch(actions.addBreakpoint(loc)); await dispatch(actions.disableBreakpoint(breakpoint)); const bp = selectors.getBreakpoint(getState(), loc); expect(bp && bp.options.condition).toBe(null); await dispatch( actions.setBreakpointOptions(loc, { condition: "const foo = 0",
--- a/devtools/client/debugger/new/src/actions/breakpoints/tests/syncing.spec.js +++ b/devtools/client/debugger/new/src/actions/breakpoints/tests/syncing.spec.js @@ -130,16 +130,17 @@ describe("loading the debugger", () => { await dispatch(actions.newSource(reloadedSource)); expect(selectors.getBreakpointCount(getState())).toEqual(0); // manually sync const update = await syncBreakpointPromise( getState, threadClient, sourceMaps, + dispatch, reloadedSource.source.id, pendingBreakpoint() ); expect(threadClient.removeBreakpoint.mock.calls).toHaveLength(0); expect(update).toMatchSnapshot(); }); @@ -160,16 +161,17 @@ describe("loading the debugger", () => { await dispatch(actions.newSource(reloadedSource)); expect(selectors.getBreakpointCount(getState())).toEqual(0); // manually sync const update = await syncBreakpointPromise( getState, threadClient, sourceMaps, + dispatch, reloadedSource.source.id, pendingBreakpoint() ); expect(threadClient.removeBreakpoint.mock.calls).toHaveLength(0); expect(update && update.breakpoint && update.breakpoint.location.line).toBe( location.line + generated ); @@ -204,16 +206,17 @@ describe("reloading debuggee", () => { await dispatch(actions.newSource(generatedSource)); await dispatch(actions.addBreakpoint(loc1)); // manually sync const update = await syncBreakpointPromise( getState, threadClient, sourceMaps, + dispatch, reloadedSource.source.id, pendingBreakpoint({ location: loc1 }) ); expect(threadClient.removeBreakpoint.mock.calls).toHaveLength(0); expect(update).toMatchSnapshot(); }); it("updates a corresponding breakpoint for a changed source", async () => { @@ -247,16 +250,17 @@ describe("reloading debuggee", () => { const generatedSource = makeSource("gen.js"); await dispatch(actions.newSource(generatedSource)); // manually sync const update = await syncBreakpointPromise( getState, threadClient, sourceMaps, + dispatch, reloadedSource.source.id, pendingBreakpoint() ); expect(threadClient.removeBreakpoint.mock.calls).toHaveLength(1); expect(findScopeByName).toHaveBeenCalled(); expect(update).toMatchSnapshot(); }); @@ -274,17 +278,17 @@ describe("reloading debuggee", () => { await dispatch(actions.newSource(generatedSource)); const location = { sourceId: reloadedSource.source.id, line: 3, column: undefined }; - const { breakpoint } = await dispatch(actions.addBreakpoint(location)); + const breakpoint = await dispatch(actions.addBreakpoint(location)); await dispatch(actions.disableBreakpoint(breakpoint)); (getGeneratedLocation: any).mockImplementationOnce(() => newGeneratedLocation(1) ); await dispatch( actions.syncBreakpoint(
deleted file mode 100644 --- a/devtools/client/debugger/new/src/actions/breakpoints/tests/toggleBreakpointsAtLine.spec.js +++ /dev/null @@ -1,71 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ - -import { - createStore, - selectors, - actions, - makeSource, - waitForState -} from "../../../utils/test-head"; - -import { generateBreakpoint } from "../../tests/helpers/breakpoints.js"; - -import { simpleMockThreadClient } from "../../tests/helpers/threadClient.js"; - -describe("toggleBreakpointsAtLine", () => { - it("removes all breakpoints on a given line", async () => { - const store = createStore(simpleMockThreadClient); - const { dispatch } = store; - - const source = makeSource("foo.js"); - await dispatch(actions.newSource(source)); - await dispatch(actions.loadSourceText(source)); - - await Promise.all([ - dispatch( - actions.addBreakpoint(generateBreakpoint("foo.js", 5, 1).location) - ), - dispatch( - actions.addBreakpoint(generateBreakpoint("foo.js", 5, 2).location) - ), - dispatch( - actions.addBreakpoint(generateBreakpoint("foo.js", 5, 3).location) - ) - ]); - - await dispatch(actions.selectLocation({ sourceId: "foo.js" })); - - await waitForState(store, state => selectors.hasSymbols(state, source)); - - await dispatch(actions.toggleBreakpointsAtLine(5)); - await waitForState( - store, - state => selectors.getBreakpointCount(state) === 0 - ); - }); - - it("removes all breakpoints on an empty line", async () => { - const store = createStore(simpleMockThreadClient); - const { dispatch } = store; - - const source = makeSource("foo.js"); - await dispatch(actions.newSource(source)); - await dispatch(actions.loadSourceText(makeSource("foo.js"))); - - await dispatch(actions.addBreakpoint({ sourceId: source.id, line: 3 })); - await dispatch(actions.selectLocation({ sourceId: "foo.js" })); - - await waitForState(store, state => - selectors.hasPausePoints(state, source.id) - ); - - await dispatch(actions.toggleBreakpointsAtLine(3)); - - await waitForState( - store, - state => selectors.getBreakpointCount(state) === 0 - ); - }); -});
--- a/devtools/client/debugger/new/src/actions/pause/paused.js +++ b/devtools/client/debugger/new/src/actions/pause/paused.js @@ -3,17 +3,18 @@ * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ // @flow import { getHiddenBreakpoint, isEvaluatingExpression, getSelectedFrame, getSources, - getLastCommand + getLastCommand, + wasStepping } from "../../selectors"; import { mapFrames } from "."; import { removeBreakpoint } from "../breakpoints"; import { evaluateExpressions } from "../expressions"; import { selectLocation } from "../sources"; import { loadSourceText } from "../sources/loadSourceText"; import { togglePaneCollapse } from "../ui"; @@ -76,17 +77,20 @@ export function paused(pauseInfo: Pause) await dispatch(mapFrames()); const selectedFrame = getSelectedFrame(getState()); if (selectedFrame) { await dispatch(selectLocation(selectedFrame.location)); } - dispatch(togglePaneCollapse("end", false)); + if (!wasStepping(getState())) { + dispatch(togglePaneCollapse("end", false)); + } + await dispatch(fetchScopes()); // Run after fetching scoping data so that it may make use of the sourcemap // expression mappings for local variables. const atException = why.type == "exception"; if (!atException || !isEvaluatingExpression(getState())) { await dispatch(evaluateExpressions()); }
--- a/devtools/client/debugger/new/src/actions/pause/resumed.js +++ b/devtools/client/debugger/new/src/actions/pause/resumed.js @@ -18,15 +18,15 @@ import type { ResumedPacket } from "../. * @static */ export function resumed(packet: ResumedPacket) { return async ({ dispatch, client, getState }: ThunkArgs) => { const why = getPauseReason(getState()); const wasPausedInEval = inDebuggerEval(why); const wasStepping = isStepping(getState()); - dispatch({ type: "RESUME", thread: packet.from }); + dispatch({ type: "RESUME", thread: packet.from, wasStepping }); if (!wasStepping && !wasPausedInEval) { await dispatch(evaluateExpressions()); } }; }
--- a/devtools/client/debugger/new/src/actions/tests/__snapshots__/pending-breakpoints.spec.js.snap +++ b/devtools/client/debugger/new/src/actions/tests/__snapshots__/pending-breakpoints.spec.js.snap @@ -23,66 +23,36 @@ Object { "line": 5, "sourceId": "", "sourceUrl": "http://localhost:8000/examples/bar.js", }, }, } `; -exports[`invalid breakpoint location a corrected corresponding pending breakpoint is added 1`] = ` +exports[`when adding breakpoints a corresponding pending breakpoint should be added 1`] = ` Object { "astLocation": Object { "index": 0, "name": undefined, "offset": Object { "column": 0, - "line": 7, - "sourceId": "foo.js", - "sourceUrl": "http://localhost:8000/examples/foo.js", - }, - }, - "disabled": false, - "generatedLocation": Object { - "column": 0, - "line": 7, - "sourceUrl": "http://localhost:8000/examples/foo.js", - }, - "location": Object { - "column": 0, - "line": 7, - "sourceUrl": "http://localhost:8000/examples/foo.js", - }, - "options": Object { - "condition": null, - "hidden": false, - "logValue": null, - }, -} -`; - -exports[`when adding breakpoints a corresponding pending breakpoint should be added 1`] = ` -Object { - "astLocation": Object { - "index": 0, - "name": undefined, - "offset": Object { "line": 5, "sourceId": "foo.js/originalSource", "sourceUrl": "http://localhost:8000/examples/foo.js", }, }, "disabled": false, "generatedLocation": Object { "column": undefined, "line": 5, "sourceUrl": "http://localhost:8000/examples/foo.js", }, "location": Object { - "column": undefined, + "column": 0, "line": 5, "sourceUrl": "http://localhost:8000/examples/foo.js", }, "options": Object { "condition": null, "hidden": false, "logValue": null, }, @@ -90,29 +60,30 @@ Object { `; exports[`when adding breakpoints adding and deleting breakpoints add a corresponding pendingBreakpoint for each addition 1`] = ` Object { "astLocation": Object { "index": 0, "name": undefined, "offset": Object { + "column": 0, "line": 5, "sourceId": "foo/originalSource", "sourceUrl": "http://localhost:8000/examples/foo", }, }, "disabled": false, "generatedLocation": Object { "column": undefined, "line": 5, "sourceUrl": "http://localhost:8000/examples/foo", }, "location": Object { - "column": undefined, + "column": 0, "line": 5, "sourceUrl": "http://localhost:8000/examples/foo", }, "options": Object { "condition": null, "hidden": false, "logValue": null, }, @@ -120,29 +91,30 @@ Object { `; exports[`when adding breakpoints adding and deleting breakpoints add a corresponding pendingBreakpoint for each addition 2`] = ` Object { "astLocation": Object { "index": 0, "name": undefined, "offset": Object { + "column": 0, "line": 5, "sourceId": "foo2/originalSource", "sourceUrl": "http://localhost:8000/examples/foo2", }, }, "disabled": false, "generatedLocation": Object { "column": undefined, "line": 5, "sourceUrl": "http://localhost:8000/examples/foo2", }, "location": Object { - "column": undefined, + "column": 0, "line": 5, "sourceUrl": "http://localhost:8000/examples/foo2", }, "options": Object { "condition": null, "hidden": false, "logValue": null, },
--- a/devtools/client/debugger/new/src/actions/tests/helpers/threadClient.js +++ b/devtools/client/debugger/new/src/actions/tests/helpers/threadClient.js @@ -1,18 +1,15 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ // @flow -import { makeBreakpointActorId } from "../../../utils/breakpoint"; - import type { - SourceLocation, SourceActor, SourceActorLocation, BreakpointOptions } from "../../../types"; function createSource(name) { name = name.replace(/\..*$/, ""); return { @@ -60,49 +57,16 @@ export const simpleMockThreadClient = { if (sources.includes(source)) { resolve(createSource(source)); } reject(`unknown source: ${source}`); }) }; -// Breakpoint Sliding -function generateCorrectingThreadClient(offset = 0) { - return { - getBreakpointByLocation: (jest.fn(): any), - setBreakpoint: (location: SourceActorLocation, condition: string) => { - const actualLocation = { ...location, line: location.line + offset }; - - return Promise.resolve({ - id: makeBreakpointActorId(location), - actualLocation, - condition - }); - }, - sourceContents: ({ source }: SourceActor) => - Promise.resolve(createSource(source)) - }; -} - -/* in some cases, a breakpoint may be added, but the source will respond - * with a different breakpoint location. This is due to the breakpoint being - * added between functions, or somewhere that doesnt make sense. This function - * simulates that behavior. - * */ -export function simulateCorrectThreadClient( - offset: number, - location: SourceLocation -) { - const correctedThreadClient = generateCorrectingThreadClient(offset); - const offsetLine = { line: location.line + offset }; - const correctedLocation = { ...location, ...offsetLine }; - return { correctedThreadClient, correctedLocation }; -} - // sources and tabs export const sourceThreadClient = { sourceContents: function({ source }: SourceActor): Promise<{| source: any, contentType: ?string |}> { return new Promise((resolve, reject) => { if (sources.includes(source)) { resolve(createSource(source));
--- a/devtools/client/debugger/new/src/actions/tests/pending-breakpoints.spec.js +++ b/devtools/client/debugger/new/src/actions/tests/pending-breakpoints.spec.js @@ -5,20 +5,17 @@ // @flow // TODO: we would like to mock this in the local tests import { generateBreakpoint, mockPendingBreakpoint } from "./helpers/breakpoints.js"; -import { - simulateCorrectThreadClient, - simpleMockThreadClient -} from "./helpers/threadClient.js"; +import { simpleMockThreadClient } from "./helpers/threadClient.js"; import { asyncStore } from "../../utils/prefs"; function loadInitialState(opts = {}) { const mockedPendingBreakpoint = mockPendingBreakpoint(opts); const id = makePendingLocationId(mockedPendingBreakpoint.location); asyncStore.pendingBreakpoints = { [id]: mockedPendingBreakpoint }; @@ -40,18 +37,17 @@ jest.mock("../../utils/prefs", () => ({ import "../sources/loadSourceText"; import { createStore, selectors, actions, makeOriginalSource, - waitForState, - makeSource + waitForState } from "../../utils/test-head"; import { makePendingLocationId } from "../../utils/breakpoint"; describe("when adding breakpoints", () => { it("a corresponding pending breakpoint should be added", async () => { const { dispatch, getState } = createStore( simpleMockThreadClient, @@ -345,36 +341,8 @@ describe("adding sources", () => { await dispatch(actions.loadSourceText(csr1.source)); await dispatch(actions.loadSourceText(csr2.source)); await waitForState(store, state => selectors.getBreakpointCount(state) > 0); expect(selectors.getBreakpointCount(getState())).toEqual(1); }); }); - -describe("invalid breakpoint location", () => { - it("a corrected corresponding pending breakpoint is added", async () => { - // setup - const bp = generateBreakpoint("foo.js"); - const { - correctedThreadClient, - correctedLocation - } = simulateCorrectThreadClient(2, bp.location); - const { dispatch, getState } = createStore(correctedThreadClient); - const correctedPendingId = makePendingLocationId(correctedLocation); - - // test - const csr = makeSource("foo.js"); - await dispatch(actions.newSource(csr)); - await dispatch(actions.loadSourceText(csr.source)); - - // Fixup the breakpoint so that its location can be loaded. - bp.location.sourceId = "foo.js"; - bp.generatedLocation = { ...bp.location }; - - await dispatch(actions.addBreakpoint(bp.location)); - const pendingBps = selectors.getPendingBreakpoints(getState()); - - const pendingBp = pendingBps[correctedPendingId]; - expect(pendingBp).toMatchSnapshot(); - }); -});
deleted file mode 100644 --- a/devtools/client/debugger/new/src/actions/tests/toolbox.spec.js +++ /dev/null @@ -1,22 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ - -import { actions, createStore } from "../../utils/test-head"; -const threadClient = { - evaluate: jest.fn() -}; - -describe("toolbox", () => { - describe("evaluate in console", () => { - it("variable", () => { - const { dispatch } = createStore(threadClient); - dispatch(actions.evaluateInConsole("foo")); - - expect(threadClient.evaluate).toBeCalledWith( - 'console.log("foo"); console.log(foo)', - { frameId: null, thread: "UnknownThread" } - ); - }); - }); -});
--- a/devtools/client/debugger/new/src/actions/types/BreakpointAction.js +++ b/devtools/client/debugger/new/src/actions/types/BreakpointAction.js @@ -1,31 +1,31 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ // @flow -import type { Breakpoint, SourceLocation, XHRBreakpoint } from "../../types"; +import type { + Breakpoint, + SourceLocation, + XHRBreakpoint, + BreakpointLinePositions +} from "../../types"; import type { PromiseAction } from "../utils/middleware/promise"; -type AddBreakpointResult = { - previousLocation: SourceLocation, - breakpoint: Breakpoint -}; - export type BreakpointAction = | PromiseAction< {| +type: "ADD_BREAKPOINT", +breakpoint: Breakpoint, +condition?: string |}, - AddBreakpointResult + Breakpoint > | PromiseAction<{| +type: "REMOVE_BREAKPOINT", +breakpoint: Breakpoint, +disabled: boolean |}> | PromiseAction<{| +type: "SET_XHR_BREAKPOINT", @@ -69,26 +69,31 @@ export type BreakpointAction = +breakpoint: ?Breakpoint, +previousLocation: SourceLocation |} | PromiseAction< {| +type: "ENABLE_BREAKPOINT", +breakpoint: Breakpoint |}, - AddBreakpointResult + Breakpoint > | {| +type: "DISABLE_BREAKPOINT", +breakpoint: Breakpoint |} | {| +type: "DISABLE_ALL_BREAKPOINTS", +breakpoints: Breakpoint[] |} | {| +type: "ENABLE_ALL_BREAKPOINTS", +breakpoints: Breakpoint[] |} | {| +type: "REMAP_BREAKPOINTS", +breakpoints: Breakpoint[] + |} + | {| + type: "ADD_BREAKPOINT_POSITIONS", + positions: BreakpointLinePositions, + location: SourceLocation |};
--- a/devtools/client/debugger/new/src/actions/types/PauseAction.js +++ b/devtools/client/debugger/new/src/actions/types/PauseAction.js @@ -13,17 +13,18 @@ export type PauseAction = | {| +type: "BREAK_ON_NEXT", +thread: string, +value: boolean |} | {| +type: "RESUME", +thread: string, - +value: void + +value: void, + +wasStepping: boolean |} | {| +type: "PAUSED", +thread: string, +why: Why, +scopes: Scope, +frames: Frame[], +selectedFrameId: string,
deleted file mode 100644 --- a/devtools/client/debugger/new/src/actions/utils/symbols.js +++ /dev/null @@ -1,50 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ - -// @flow - -import { - type SymbolDeclaration, - type SymbolDeclarations -} from "../../workers/parser"; - -import type { Source } from "../../types"; - -function updateSymbolLocation( - site: SymbolDeclaration, - source: Source, - sourceMaps: any -) { - return sourceMaps - .getGeneratedLocation( - { ...site.location.start, sourceId: source.id }, - source - ) - .then(loc => { - return { - ...site, - generatedLocation: { line: loc.line, column: loc.column } - }; - }); -} - -export async function updateSymbolLocations( - symbols: SymbolDeclarations, - source: Source, - sourceMaps: any -): Promise<SymbolDeclarations> { - if (!symbols || !symbols.callExpressions) { - return Promise.resolve(symbols); - } - - const mappedCallExpressions = await Promise.all( - symbols.callExpressions.map(site => - updateSymbolLocation(site, source, sourceMaps) - ) - ); - - const newSymbols = { ...symbols, callExpressions: mappedCallExpressions }; - - return Promise.resolve(newSymbols); -}
--- a/devtools/client/debugger/new/src/client/firefox/commands.js +++ b/devtools/client/debugger/new/src/client/firefox/commands.js @@ -27,17 +27,17 @@ import type { BPClients, SourcesPacket } from "./types"; import type { PausePointsMap } from "../../workers/parser"; import { makeBreakpointActorId } from "../../utils/breakpoint"; -import { createSource, createBreakpointLocation, createWorker } from "./create"; +import { createSource, createWorker } from "./create"; import { supportsWorkers, updateWorkerClients } from "./workers"; import { features } from "../../utils/prefs"; let bpClients: BPClients; let workerClients: Object; let threadClient: ThreadClient; let tabTarget: TabTarget; @@ -184,40 +184,32 @@ function setXHRBreakpoint(path: string, } function removeXHRBreakpoint(path: string, method: string) { return threadClient.removeXHRBreakpoint(path, method); } function setBreakpoint( location: SourceActorLocation, - options: BreakpointOptions, - noSliding: boolean -): Promise<BreakpointResult> { + options: BreakpointOptions +) { const sourceThreadClient = lookupThreadClient(location.sourceActor.thread); const sourceClient = sourceThreadClient.source({ actor: location.sourceActor.actor }); return sourceClient .setBreakpoint({ line: location.line, column: location.column, options, - noSliding }) - .then(([{ actualLocation }, bpClient]) => { - actualLocation = createBreakpointLocation(location, actualLocation); - - const id = makeBreakpointActorId(actualLocation); + .then(([, bpClient]) => { + const id = makeBreakpointActorId(location); bpClients[id] = bpClient; - bpClient.location.line = actualLocation.line; - bpClient.location.column = actualLocation.column; - - return { id, actualLocation }; }); } function removeBreakpoint( location: SourceActorLocation ): Promise<void> | ?BreakpointResult { try { const id = makeBreakpointActorId(location); @@ -451,16 +443,33 @@ async function fetchWorkers(): Promise<W const { workers } = await tabTarget.listWorkers(); return workers; } function getMainThread() { return threadClient.actor; } +async function getBreakpointPositions( + location: SourceActorLocation +): Promise<Array<Number>> { + const { + sourceActor: { thread, actor }, + line + } = location; + const sourceThreadClient = lookupThreadClient(thread); + const sourceClient = sourceThreadClient.source({ actor }); + const { positions } = await sourceClient.getBreakpointPositionsCompressed({ + start: { line }, + end: { line } + }); + + return positions ? positions[line] : []; +} + const clientCommands = { autocomplete, blackBox, createObjectClient, releaseActor, interrupt, eventListeners, pauseGrip, @@ -471,16 +480,17 @@ const clientCommands = { rewind, reverseStepIn, reverseStepOut, reverseStepOver, breakOnNext, sourceContents, getSourceForActor, getBreakpointByLocation, + getBreakpointPositions, setBreakpoint, setXHRBreakpoint, removeXHRBreakpoint, removeBreakpoint, setBreakpointOptions, evaluate, evaluateInFrame, evaluateExpressions,
--- a/devtools/client/debugger/new/src/client/firefox/create.js +++ b/devtools/client/debugger/new/src/client/firefox/create.js @@ -1,16 +1,16 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ // @flow // This module converts Firefox specific types to the generic types -import type { Frame, Source, SourceActorLocation, ThreadId } from "../../types"; +import type { Frame, Source, ThreadId } from "../../types"; import type { PausedPacket, FramesResponse, FramePacket, SourcePayload, CreateSourceResult } from "./types"; @@ -91,35 +91,16 @@ export function createPause( return { ...packet, thread, frame: createFrame(thread, frame), frames: response.frames.map(createFrame.bind(null, thread)) }; } -// Firefox only returns `actualLocation` if it actually changed, -// but we want it always to exist. Format `actualLocation` if it -// exists, otherwise use `location`. - -export function createBreakpointLocation( - location: SourceActorLocation, - actualLocation?: Object -): SourceActorLocation { - if (!actualLocation) { - return location; - } - - return { - ...location, - line: actualLocation.line, - column: actualLocation.column - }; -} - export function createWorker(actor: string, url: string) { return { actor, url, // Ci.nsIWorkerDebugger.TYPE_DEDICATED type: 0 }; }
--- a/devtools/client/debugger/new/src/client/firefox/types.js +++ b/devtools/client/debugger/new/src/client/firefox/types.js @@ -325,19 +325,22 @@ export type FunctionGrip = {| */ export type SourceClient = { source: () => { source: any, contentType?: string }, _activeThread: ThreadClient, actor: string, setBreakpoint: ({ line: number, column: ?number, - condition: ?string, - noSliding: boolean + condition: ?string }) => Promise<BreakpointResponse>, + getBreakpointPositionsCompressed: (range: { + start: { line: number }, + end: { line: number } + }) => Promise<any>, prettyPrint: number => Promise<*>, disablePrettyPrint: () => Promise<*>, blackBox: (range?: Range) => Promise<*>, unblackBox: (range?: Range) => Promise<*> }; /** * ObjectClient @@ -393,17 +396,17 @@ export type BreakpointClient = { actor: ActorId, remove: () => void, location: { actor: string, url: string, line: number, column: ?number }, - setOptions: (BreakpointOptions) => Promise<BreakpointClient>, + setOptions: BreakpointOptions => Promise<BreakpointClient>, // request: any, source: SourceClient, options: BreakpointOptions }; export type BPClients = { [id: ActorId]: BreakpointClient }; export type BreakpointResponse = [
deleted file mode 100644 --- a/devtools/client/debugger/new/src/components/Editor/CallSites.js +++ /dev/null @@ -1,238 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ - -import React, { Component } from "react"; -import { connect } from "react-redux"; - -import { range, keyBy, isEqualWith, uniqBy, groupBy, flatten } from "lodash"; - -import CallSite from "./CallSite"; - -import { - getSelectedSource, - getSymbols, - getSelectedLocation, - getBreakpointsForSource -} from "../../selectors"; - -import { getTokenLocation } from "../../utils/editor"; -import { isWasm } from "../../utils/wasm"; - -import actions from "../../actions"; - -function getCallSiteAtLocation(callSites, location) { - return callSites.find(callSite => - isEqualWith(callSite.location, location, (cloc, loc) => { - return ( - loc.line === cloc.start.line && - (loc.column >= cloc.start.column && loc.column <= cloc.end.column) - ); - }) - ); -} - -class CallSites extends Component { - props: { - symbols: Array<Symbol>, - callSites: Array<Symbol>, - editor: Object, - breakpoints: Map, - addBreakpoint: Function, - removeBreakpoint: Function, - selectedSource: Object, - selectedLocation: Object - }; - - componentDidMount() { - const { editor } = this.props; - const codeMirrorWrapper = editor.codeMirror.getWrapperElement(); - - codeMirrorWrapper.addEventListener("click", e => this.onTokenClick(e)); - } - - componentWillUnmount() { - const { editor } = this.props; - const codeMirrorWrapper = editor.codeMirror.getWrapperElement(); - - codeMirrorWrapper.removeEventListener("click", e => this.onTokenClick(e)); - } - - onTokenClick(e) { - const { target } = e; - const { editor, selectedLocation } = this.props; - - if ( - !target.classList.contains("call-site") && - !target.classList.contains("call-site-bp") - ) { - return; - } - - const { sourceId } = selectedLocation; - const { line, column } = getTokenLocation(editor.codeMirror, target); - - this.toggleBreakpoint(line, isWasm(sourceId) ? undefined : column); - } - - toggleBreakpoint(line, column = undefined) { - const { - selectedSource, - selectedLocation, - addBreakpoint, - removeBreakpoint, - callSites - } = this.props; - - const callSite = getCallSiteAtLocation(callSites, { line, column }); - - if (!callSite) { - return; - } - - const bp = callSite.breakpoint; - - if ((bp && bp.loading) || !selectedLocation || !selectedSource) { - return; - } - - const { sourceId } = selectedLocation; - - if (bp) { - // NOTE: it's possible the breakpoint has slid to a column - column = column || bp.location.column; - removeBreakpoint({ - sourceId: sourceId, - line: line, - column - }); - } else { - addBreakpoint({ - sourceId: sourceId, - sourceUrl: selectedSource.url, - line: line, - column: column - }); - } - } - - // Return the call sites that are on the same line as an - // existing line breakpoint - filterCallSitesByLineNumber() { - const { callSites, breakpoints } = this.props; - - // Get unique lines from breakpoints so we can filter out unwated call sites - const uniqueBreakpointLines = new Set( - breakpoints.map(bp => bp.location.line) - ); - - // Get call sites based on activated breakpoint lines - const callSitesInRange = callSites.filter(({ location }) => - uniqueBreakpointLines.has(location.start.line) - ); - - // Group call sites by line - const callSitesByLineObj = groupBy(callSitesInRange, "location.start.line"); - - // Per group, ensure all call sites are unique - return flatten( - Object.values(callSitesByLineObj).map(arr => { - const uniques = uniqBy( - arr, - site => - `${site.generatedLocation.line}:${site.generatedLocation.column}` - ); - // Only return call sites for a line when more than 1 is found - return uniques.length > 1 ? uniques : []; - }) - ); - } - - render() { - const { editor, callSites, selectedSource, breakpoints } = this.props; - - if (!callSites || breakpoints.length === 0) { - return null; - } - - const callSitesFiltered = this.filterCallSitesByLineNumber(); - - let sites; - editor.codeMirror.operation(() => { - const childCallSites = callSitesFiltered.map((callSite, index) => { - const props = { - key: index, - callSite, - editor, - source: selectedSource, - breakpoint: callSite.breakpoint, - showCallSite: true - }; - return <CallSite {...props} />; - }); - sites = <div>{childCallSites}</div>; - }); - return sites; - } -} - -function getCallSites(symbols, breakpoints) { - if (!symbols || !symbols.callExpressions) { - return; - } - - const callSites = symbols.callExpressions; - - // NOTE: we create a breakpoint map keyed on location - // to speed up the lookups. Hopefully we'll fix the - // inconsistency with column offsets so that we can expect - // a breakpoint to be added at the beginning of a call expression. - const bpLocationMap = keyBy(breakpoints, ({ location }) => - locationKey(location) - ); - - function locationKey({ line, column }) { - return `${line}/${column}`; - } - - function findBreakpoint(callSite) { - const { - location: { start, end } - } = callSite; - - const breakpointId = range(start.column - 1, end.column) - .map(column => locationKey({ line: start.line, column })) - .find(key => bpLocationMap[key]); - - if (breakpointId) { - return bpLocationMap[breakpointId]; - } - } - - return callSites - .filter(({ location }) => location.start.line === location.end.line) - .map(callSite => ({ ...callSite, breakpoint: findBreakpoint(callSite) })); -} - -const mapStateToProps = state => { - const selectedLocation = getSelectedLocation(state); - const selectedSource = getSelectedSource(state); - const sourceId = selectedLocation && selectedLocation.sourceId; - const symbols = getSymbols(state, selectedSource); - const breakpoints = getBreakpointsForSource(state, sourceId); - - return { - selectedLocation, - selectedSource, - callSites: getCallSites(symbols, breakpoints), - breakpoints: breakpoints - }; -}; - -const { addBreakpoint, removeBreakpoint } = actions; -const mapDispatchToProps = { addBreakpoint, removeBreakpoint }; - -export default connect( - mapStateToProps, - mapDispatchToProps -)(CallSites);
deleted file mode 100644 --- a/devtools/client/debugger/new/src/components/Editor/GutterMenu.js +++ /dev/null @@ -1,216 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ - -import { Component } from "react"; -import { showMenu } from "devtools-contextmenu"; -import { connect } from "../../utils/connect"; -import { lineAtHeight } from "../../utils/editor"; -import { features } from "../../utils/prefs"; -import { - getContextMenu, - getEmptyLines, - getSelectedLocation, - getSelectedSource, - getVisibleBreakpoints, - isPaused as getIsPaused -} from "../../selectors"; - -import actions from "../../actions"; - -type Props = { - setContextMenu: Function, - contextMenu: Object -}; - -export function gutterMenu({ - breakpoint, - line, - column, - event, - isPaused, - toggleBreakpoint, - openConditionalPanel, - toggleDisabledBreakpoint, - isCbPanelOpen, - closeConditionalPanel, - continueToHere, - sourceId -}) { - event.stopPropagation(); - event.preventDefault(); - - const gutterItems = { - addBreakpoint: { - id: "node-menu-add-breakpoint", - label: L10N.getStr("editor.addBreakpoint") - }, - addLogPoint: { - id: "node-menu-add-log-point", - label: L10N.getStr("editor.addLogPoint") - }, - addConditional: { - id: "node-menu-add-conditional-breakpoint", - label: L10N.getStr("editor.addConditionBreakpoint") - }, - removeBreakpoint: { - id: "node-menu-remove-breakpoint", - label: L10N.getStr("editor.removeBreakpoint") - }, - editLogPoint: { - id: "node-menu-edit-log-point", - label: L10N.getStr("editor.editLogPoint") - }, - editConditional: { - id: "node-menu-edit-conditional-breakpoint", - label: L10N.getStr("editor.editConditionBreakpoint") - }, - enableBreakpoint: { - id: "node-menu-enable-breakpoint", - label: L10N.getStr("editor.enableBreakpoint") - }, - disableBreakpoint: { - id: "node-menu-disable-breakpoint", - label: L10N.getStr("editor.disableBreakpoint") - }, - continueToHere: { - id: "node-menu-continue-to-here", - label: L10N.getStr("editor.continueToHere.label") - } - }; - - const toggleBreakpointItem = { - accesskey: L10N.getStr("shortcuts.toggleBreakpoint.accesskey"), - disabled: false, - click: () => { - toggleBreakpoint(line, column); - if (isCbPanelOpen) { - closeConditionalPanel(); - } - }, - accelerator: L10N.getStr("toggleBreakpoint.key"), - ...(breakpoint ? gutterItems.removeBreakpoint : gutterItems.addBreakpoint) - }; - - const logPoint = { - accesskey: L10N.getStr("editor.addLogPoint.accesskey"), - disabled: false, - click: () => - openConditionalPanel( - breakpoint ? breakpoint.location : { line, column, sourceId }, - true - ), - accelerator: L10N.getStr("toggleCondPanel.key"), - ...(breakpoint && breakpoint.condition - ? gutterItems.editLogPoint - : gutterItems.addLogPoint) - }; - - const conditionalBreakpoint = { - accesskey: L10N.getStr("editor.addConditionBreakpoint.accesskey"), - disabled: false, - // Leaving column undefined so pause points can be detected - click: () => - openConditionalPanel( - breakpoint ? breakpoint.location : { line, column, sourceId } - ), - accelerator: L10N.getStr("toggleCondPanel.key"), - ...(breakpoint && breakpoint.condition - ? gutterItems.editConditional - : gutterItems.addConditional) - }; - - let items = [toggleBreakpointItem, conditionalBreakpoint]; - - if (features.logPoints) { - items.push(logPoint) - } - - if (breakpoint && breakpoint.condition) { - const remove = breakpoint.log ? conditionalBreakpoint : logPoint; - items = items.filter(item => item !== remove); - } - - if (isPaused) { - const continueToHereItem = { - accesskey: L10N.getStr("editor.continueToHere.accesskey"), - disabled: false, - click: () => continueToHere(line, column), - ...gutterItems.continueToHere - }; - items.push(continueToHereItem); - } - - if (breakpoint) { - const disableBreakpoint = { - accesskey: L10N.getStr("editor.disableBreakpoint.accesskey"), - disabled: false, - click: () => toggleDisabledBreakpoint(line, column), - ...(breakpoint.disabled - ? gutterItems.enableBreakpoint - : gutterItems.disableBreakpoint) - }; - items.push(disableBreakpoint); - } - - showMenu(event, items); -} - -class GutterContextMenuComponent extends Component { - props: Props; - - shouldComponentUpdate(nextProps) { - return nextProps.contextMenu.type === "Gutter"; - } - - componentWillUpdate(nextProps) { - // clear the context menu since it is open - this.props.setContextMenu("", null); - return this.showMenu(nextProps); - } - - showMenu(nextProps) { - const { contextMenu, ...props } = nextProps; - const { event } = contextMenu; - - const sourceId = props.selectedSource ? props.selectedSource.id : ""; - const line = lineAtHeight(props.editor, sourceId, event); - const column = props.editor.codeMirror.coordsChar({ - left: event.x, - top: event.y - }).ch; - const breakpoint = nextProps.breakpoints.find( - bp => bp.location.line === line && bp.location.column === column - ); - - // Allow getFirstVisiblePausePoint to find the best first breakpoint - // position by not providing an explicit column number - if (features.columnBreakpoints && !breakpoint && column === 0) { - column = undefined; - } - - gutterMenu({ event, sourceId, line, column, breakpoint, ...props }); - } - - render() { - return null; - } -} - -const mapStateToProps = state => { - const selectedSource = getSelectedSource(state); - - return { - selectedLocation: getSelectedLocation(state), - selectedSource: selectedSource, - breakpoints: getVisibleBreakpoints(state), - isPaused: getIsPaused(state), - contextMenu: getContextMenu(state), - emptyLines: getEmptyLines(state, selectedSource.id) - }; -}; - -export default connect( - mapStateToProps, - actions -)(GutterContextMenuComponent);
deleted file mode 100644 --- a/devtools/client/debugger/new/src/components/Editor/HitMarker.js +++ /dev/null @@ -1,59 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ - -// @flow -import { Component } from "react"; - -const markerEl = document.createElement("div"); - -function makeMarker() { - const marker = markerEl.cloneNode(true); - marker.className = "editor hit-marker"; - return marker; -}