Bug 1374129: Avoid loading content scripts into uninitialized about:blank documents. r=aswan

MozReview-Commit-ID: LN1E4Q5xAbO

--HG--
extra : rebase_source : 463b99f1d41ebd0af65b9f23fe71dac7f520dbb7
extra : amend_source : c8b0ec754d67584f33c7ee7364d032f531d16a51
This commit is contained in:
Kris Maglione 2017-06-21 17:31:43 -07:00
parent 291fb8fbf0
commit 7565237b48

View File

@ -271,17 +271,15 @@ ExtensionPolicyService::CheckWindow(nsPIDOMWindowOuter* aWindow)
// We only care about non-initial document loads here. The initial
// about:blank document will usually be re-used to load another document.
nsCOMPtr<nsIDocument> doc = aWindow->GetExtantDoc();
if (!doc || doc->IsInitialDocument()) {
if (!doc || doc->IsInitialDocument() ||
doc->GetReadyStateEnum() == nsIDocument::READYSTATE_UNINITIALIZED) {
return;
}
nsCOMPtr<nsIURI> aboutBlank;
NS_ENSURE_SUCCESS_VOID(NS_NewURI(getter_AddRefs(aboutBlank),
"about:blank"));
nsCOMPtr<nsIURI> uri = doc->GetDocumentURI();
bool equal;
if (!uri || NS_FAILED(uri->EqualsExceptRef(aboutBlank, &equal)) || !equal) {
nsCOMPtr<nsIURI> docUri = doc->GetDocumentURI();
nsCOMPtr<nsIURI> uri;
if (!docUri || NS_FAILED(docUri->CloneIgnoringRef(getter_AddRefs(uri))) ||
!NS_IsAboutBlank(uri)) {
return;
}