Bug 1864168 - Part 6: Use 1-origin column number in ScriptLoader and nsIScriptElement. r=smaug,devtools-reviewers,hsivonen,ochameau

Also fix opSetScriptLineAndColumnNumberAndFreeze::mColumnNumber to point the
first character of the script source, instead of '>' of the start tag.

Differential Revision: https://phabricator.services.mozilla.com/D193374
This commit is contained in:
Tooru Fujisawa
2023-11-22 11:13:56 +00:00
parent fe5a0d4d86
commit 57838ec3d2
10 changed files with 51 additions and 30 deletions

View File

@@ -919,8 +919,8 @@ static bool CSPAllowsInlineScript(nsIScriptElement* aElement,
nsIContentSecurityPolicy::SCRIPT_SRC_ELEM_DIRECTIVE,
false /* aHasUnsafeHash */, aNonce, parserCreated, element,
nullptr /* nsICSPEventListener */, u""_ns,
aElement->GetScriptLineNumber(), aElement->GetScriptColumnNumber() + 1,
&allowInlineScript);
aElement->GetScriptLineNumber(),
aElement->GetScriptColumnNumber().oneOriginValue(), &allowInlineScript);
return NS_SUCCEEDED(rv) && allowInlineScript;
}
@@ -2331,8 +2331,7 @@ nsresult ScriptLoader::FillCompileOptionsForRequest(
if (aRequest->GetScriptLoadContext()->mIsInline &&
aRequest->GetScriptLoadContext()->GetParserCreated() ==
FROM_PARSER_NETWORK) {
aOptions->setColumn(JS::ColumnNumberOneOrigin::fromZeroOrigin(
aRequest->GetScriptLoadContext()->mColumnNo));
aOptions->setColumn(aRequest->GetScriptLoadContext()->mColumnNo);
}
aOptions->setIsRunOnce(true);
aOptions->setNoScriptRval(true);
@@ -3416,12 +3415,15 @@ void ScriptLoader::ReportErrorToConsole(ScriptLoadRequest* aRequest,
nsIScriptElement* element =
aRequest->GetScriptLoadContext()->GetScriptElement();
uint32_t lineNo = element ? element->GetScriptLineNumber() : 0;
uint32_t columnNo = element ? element->GetScriptColumnNumber() : 0;
JS::ColumnNumberOneOrigin columnNo;
if (element) {
columnNo = element->GetScriptColumnNumber();
}
nsContentUtils::ReportToConsole(nsIScriptError::warningFlag,
"Script Loader"_ns, mDocument,
nsContentUtils::eDOM_PROPERTIES, message,
params, nullptr, u""_ns, lineNo, columnNo);
nsContentUtils::ReportToConsole(
nsIScriptError::warningFlag, "Script Loader"_ns, mDocument,
nsContentUtils::eDOM_PROPERTIES, message, params, nullptr, u""_ns, lineNo,
columnNo.oneOriginValue());
}
void ScriptLoader::ReportWarningToConsole(
@@ -3430,11 +3432,14 @@ void ScriptLoader::ReportWarningToConsole(
nsIScriptElement* element =
aRequest->GetScriptLoadContext()->GetScriptElement();
uint32_t lineNo = element ? element->GetScriptLineNumber() : 0;
uint32_t columnNo = element ? element->GetScriptColumnNumber() : 0;
nsContentUtils::ReportToConsole(nsIScriptError::warningFlag,
"Script Loader"_ns, mDocument,
nsContentUtils::eDOM_PROPERTIES, aMessageName,
aParams, nullptr, u""_ns, lineNo, columnNo);
JS::ColumnNumberOneOrigin columnNo;
if (element) {
columnNo = element->GetScriptColumnNumber();
}
nsContentUtils::ReportToConsole(
nsIScriptError::warningFlag, "Script Loader"_ns, mDocument,
nsContentUtils::eDOM_PROPERTIES, aMessageName, aParams, nullptr, u""_ns,
lineNo, columnNo.oneOriginValue());
}
void ScriptLoader::ReportPreloadErrorsToConsole(ScriptLoadRequest* aRequest) {