Bug 1556903 - Return null when source not found. r=loganfsmyth

Differential Revision: https://phabricator.services.mozilla.com/D33755

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Andrew Nicols 2020-04-09 03:12:44 +00:00
parent 2834731dd4
commit b54179e426
8 changed files with 130 additions and 2 deletions

View File

@ -368,7 +368,7 @@ async function getOriginalSourceText(
const { urlsById, map } = data;
const url = urlsById.get(originalSourceId);
let text = map.sourceContentFor(url);
let text = map.sourceContentFor(url, true);
if (!text) {
try {
const response = await networkRequest(url, {

View File

@ -142,6 +142,7 @@ skip-if = os == "win"
[browser_dbg-sourcemaps.js]
[browser_dbg-sourcemaps-breakpoints.js]
[browser_dbg-sourcemaps-disabled.js]
[browser_dbg-sourcemaps-indexed.js]
[browser_dbg-sourcemaps-reload.js]
skip-if = os == "win" || (verify) # Bug 1434792
[browser_dbg-sourcemaps-reloading.js]

View File

@ -0,0 +1,59 @@
/* 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/>. */
requestLongerTimeout(2);
function assertBpInGutter(dbg, lineNumber) {
const el = findElement(dbg, "breakpoint");
const bpLineNumber = +el.querySelector(".CodeMirror-linenumber").innerText;
is(
bpLineNumber,
lineNumber,
"Breakpoint is on the correct line in the gutter"
);
}
// Tests loading sourcemapped sources, setting breakpoints, and
// stepping in them.
// This source map does not have source contents, so it's fetched separately
add_task(async function() {
// NOTE: the CORS call makes the test run times inconsistent
const dbg = await initDebugger(
"doc-sourcemaps-indexed.html",
"main.js",
"main.min.js"
);
const {
selectors: { getBreakpoint, getBreakpointCount },
getState
} = dbg;
ok(true, "Original sources exist");
const mainSrc = findSource(dbg, "main.js");
await selectSource(dbg, mainSrc);
// Test that breakpoint is not off by a line.
await addBreakpoint(dbg, mainSrc, 4, 2);
is(getBreakpointCount(), 1, "One breakpoint exists");
ok(
getBreakpoint({ sourceId: mainSrc.id, line: 4, column: 2 }),
"Breakpoint has correct line"
);
assertBpInGutter(dbg, 4);
invokeInTab("logMessage");
await waitForPaused(dbg);
assertPausedLocation(dbg);
// Tests the existence of the sourcemap link in the original source.
ok(findElement(dbg, "sourceMapLink"), "Sourcemap link in original source");
await selectSource(dbg, "main.min.js");
ok(
!findElement(dbg, "sourceMapLink"),
"No Sourcemap link exists in generated source"
);
});

View File

@ -0,0 +1,21 @@
<!-- 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/. -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<section id="example">
<input id="message" type="text" name="submitButton" value="" />
<input id="log-message" type="button" name="submitButton" value="Log message!" />
</section>
<script type="text/javascript" src="sourcemaps-indexed/main.min.js"></script>
</body>
</html>

View File

@ -0,0 +1,15 @@
var message = document.getElementById('message');
function logMessage() {
console.log('message is: ' + message.value);
}
message.addEventListener('focus', function() {
message.value = '';
}, false);
var logMessageButton = document.getElementById('log-message');
logMessageButton.addEventListener('click', function() {
logMessage();
}, false);

View File

@ -0,0 +1,30 @@
{
"version": 3,
"file": "main.js",
"sections": [
{
"offset": {
"line": 0,
"column": 0
},
"map": {
"version": 3,
"sources": [
"main.js"
],
"names": [
"message",
"document",
"getElementById",
"logMessage",
"console",
"log",
"value",
"addEventListener",
"logMessageButton"
],
"mappings": "AAAA,GAAIA,SAAUC,SAASC,eAAe,UAEtC,SAASC,cACPC,QAAQC,IAAI,eAAiBL,QAAQM,OAGvCN,QAAQO,iBAAiB,QAAS,WAChCP,QAAQM,MAAQ,IACf,MAEH,IAAIE,kBAAmBP,SAASC,eAAe,cAE/CM,kBAAiBD,iBAAiB,QAAS,WACzCJ,cACC"
}
}
]
}

View File

@ -0,0 +1,2 @@
var message=document.getElementById("message");function logMessage(){console.log("message is: "+message.value)}message.addEventListener("focus",function(){message.value=""},false);var logMessageButton=document.getElementById("log-message");logMessageButton.addEventListener("click",function(){logMessage()},false);
//# sourceMappingURL=main.js.map

View File

@ -1786,7 +1786,7 @@ async function getOriginalSourceText(originalSourceId) {
map
} = data;
const url = urlsById.get(originalSourceId);
let text = map.sourceContentFor(url);
let text = map.sourceContentFor(url, true);
if (!text) {
try {