Bug 1602090 part 1. Add a window id argument to nsScriptSecurityManager::ReportError. r=ckerschb

This will allow the errors reported via this method to show up in the web console as needed.

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

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Boris Zbarsky 2019-12-12 13:03:42 +00:00
Родитель 682491827d
Коммит 9736474e72
2 изменённых файлов: 14 добавлений и 5 удалений

Просмотреть файл

@ -990,7 +990,8 @@ nsresult nsScriptSecurityManager::CheckLoadURIFlags(
nsresult nsScriptSecurityManager::ReportError(const char* aMessageTag,
nsIURI* aSource, nsIURI* aTarget,
bool aFromPrivateWindow) {
bool aFromPrivateWindow,
uint64_t aInnerWindowID) {
nsresult rv;
NS_ENSURE_TRUE(aSource && aTarget, NS_ERROR_NULL_POINTER);
@ -1024,9 +1025,16 @@ nsresult nsScriptSecurityManager::ReportError(const char* aMessageTag,
NS_ENSURE_TRUE(error, NS_ERROR_FAILURE);
// using category of "SOP" so we can link to MDN
rv = error->Init(message, EmptyString(), EmptyString(), 0, 0,
nsIScriptError::errorFlag, "SOP", aFromPrivateWindow,
true /* From chrome context */);
if (aInnerWindowID != 0) {
rv = error->InitWithWindowID(message, EmptyString(), EmptyString(), 0, 0,
nsIScriptError::errorFlag,
NS_LITERAL_CSTRING("SOP"), aInnerWindowID,
true /* From chrome context */);
} else {
rv = error->Init(message, EmptyString(), EmptyString(), 0, 0,
nsIScriptError::errorFlag, "SOP", aFromPrivateWindow,
true /* From chrome context */);
}
NS_ENSURE_SUCCESS(rv, rv);
console->LogMessage(error);
return NS_OK;

Просмотреть файл

@ -69,7 +69,8 @@ class nsScriptSecurityManager final : public nsIScriptSecurityManager {
static uint32_t SecurityHashURI(nsIURI* aURI);
static nsresult ReportError(const char* aMessageTag, nsIURI* aSource,
nsIURI* aTarget, bool aFromPrivateWindow);
nsIURI* aTarget, bool aFromPrivateWindow,
uint64_t aInnerWindowID = 0);
static bool GetStrictFileOriginPolicy() { return sStrictFileOriginPolicy; }