Bug 1815937 - Set ScriptLoadContext column number for inline scripts. r=smaug,devtools-reviewers,ochameau.

Differential Revision: https://phabricator.services.mozilla.com/D170580
This commit is contained in:
Nicolas Chevobbe
2023-03-20 19:25:19 +00:00
parent c93fa95260
commit f8b904ca99
11 changed files with 95 additions and 22 deletions

View File

@@ -1187,6 +1187,8 @@ bool ScriptLoader::ProcessInlineScript(nsIScriptElement* aElement,
referrerPolicy);
request->GetScriptLoadContext()->mIsInline = true;
request->GetScriptLoadContext()->mLineNo = aElement->GetScriptLineNumber();
request->GetScriptLoadContext()->mColumnNo =
aElement->GetScriptColumnNumber();
request->mFetchSourceOnly = true;
request->SetTextSource();
TRACE_FOR_TEST_BOOL(request->GetScriptLoadContext()->GetScriptElement(),
@@ -1995,6 +1997,15 @@ nsresult ScriptLoader::FillCompileOptionsForRequest(
aIntroductionScript);
aOptions->setFileAndLine(aRequest->mURL.get(),
aRequest->GetScriptLoadContext()->mLineNo);
// The column is only relevant for inline scripts in order for SpiderMonkey to
// properly compute offsets relatively to the script position within the HTML
// file. injectedScript are not concerned and are always considered to start
// at column 0.
if (aRequest->GetScriptLoadContext()->mIsInline &&
aRequest->GetScriptLoadContext()->GetParserCreated() ==
FROM_PARSER_NETWORK) {
aOptions->setColumn(aRequest->GetScriptLoadContext()->mColumnNo);
}
aOptions->setIsRunOnce(true);
aOptions->setNoScriptRval(true);
if (aRequest->mSourceMapURL) {