From 2d26e1168dc4e8a14f628507dcf8bd8643ef0875 Mon Sep 17 00:00:00 2001 From: Gabor Krizsanits Date: Thu, 17 Jul 2014 10:51:11 +0200 Subject: [PATCH] Bug 1016875 - Part10: GetPrincipal for imports. r=mrbkap --- content/base/src/ImportManager.cpp | 19 ++++++++++++------- content/base/src/ImportManager.h | 3 +++ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/content/base/src/ImportManager.cpp b/content/base/src/ImportManager.cpp index c95c81d1fcf..20bda6e6d9c 100644 --- a/content/base/src/ImportManager.cpp +++ b/content/base/src/ImportManager.cpp @@ -190,14 +190,23 @@ void ImportLoader::ReleaseResources() mImportParent = nullptr; } +nsIPrincipal* +ImportLoader::Principal() +{ + MOZ_ASSERT(mImportParent); + nsCOMPtr master = mImportParent->MasterDocument(); + nsCOMPtr sop = do_QueryInterface(master); + MOZ_ASSERT(sop); + return sop->GetPrincipal(); +} + void ImportLoader::Open() { AutoError ae(this, false); // Imports should obey to the master documents CSP. nsCOMPtr master = mImportParent->MasterDocument(); - nsCOMPtr sop = do_QueryInterface(master); - nsCOMPtr principal = sop->GetPrincipal(); + nsIPrincipal* principal = Principal(); int16_t shouldLoad = nsIContentPolicy::ACCEPT; nsresult rv = NS_CheckContentLoadPolicy(nsIContentPolicy::TYPE_SCRIPT, @@ -324,11 +333,7 @@ NS_IMETHODIMP ImportLoader::OnStartRequest(nsIRequest* aRequest, nsISupports* aContext) { AutoError ae(this); - nsCOMPtr sop = do_QueryInterface(mImportParent); - nsCOMPtr principal = sop->GetPrincipal(); - if (!sop) { - return NS_ERROR_DOM_ABORT_ERR; - } + nsIPrincipal* principal = Principal(); nsCOMPtr channel = do_QueryInterface(aRequest); if (!channel) { diff --git a/content/base/src/ImportManager.h b/content/base/src/ImportManager.h index 783b4a7d9cd..ba619941804 100644 --- a/content/base/src/ImportManager.h +++ b/content/base/src/ImportManager.h @@ -49,6 +49,7 @@ class nsIDocument; class nsIChannel; +class nsIPrincipal; class nsINode; class AutoError; @@ -115,6 +116,8 @@ private: void BlockScripts(); void UnblockScripts(); + nsIPrincipal* Principal(); + nsCOMPtr mDocument; nsCOMPtr mURI; nsCOMPtr mParserStreamListener;