diff --git a/content/base/src/nsFrameLoader.cpp b/content/base/src/nsFrameLoader.cpp index 5b08d7d3b9c..839dc7e1c63 100644 --- a/content/base/src/nsFrameLoader.cpp +++ b/content/base/src/nsFrameLoader.cpp @@ -318,6 +318,15 @@ nsFrameLoader::LoadFrame() src.Trim(" \t\n\r"); if (src.IsEmpty()) { + // If the frame is a XUL element and has the attribute 'nodefaultsrc=true' + // then we will not use 'about:blank' as fallback but return early without + // starting a load if no 'src' attribute is given (or it's empty). + if (mOwnerContent->IsXUL() && + mOwnerContent->AttrValueIs(kNameSpaceID_None, nsGkAtoms::nodefaultsrc, + nsGkAtoms::_true, eCaseMatters)) { + return NS_OK; + } + src.AssignLiteral("about:blank"); } diff --git a/content/base/src/nsGkAtomList.h b/content/base/src/nsGkAtomList.h index 0a402ba5ad5..25163f81d1d 100644 --- a/content/base/src/nsGkAtomList.h +++ b/content/base/src/nsGkAtomList.h @@ -607,6 +607,7 @@ GK_ATOM(no, "no") GK_ATOM(noautohide, "noautohide") GK_ATOM(nobr, "nobr") GK_ATOM(node, "node") +GK_ATOM(nodefaultsrc, "nodefaultsrc") GK_ATOM(nodeSet, "node-set") GK_ATOM(noembed, "noembed") GK_ATOM(noframes, "noframes")