Bug 1354349 - Use channel.isDocument in ContentParent::TransmitPermissionsFor r=mystor
MozReview-Commit-ID: L9b6UeXJ8o5
--- a/dom/ipc/ContentParent.cpp
+++ b/dom/ipc/ContentParent.cpp
@@ -5018,37 +5018,20 @@ ContentParent::ForceTabPaint(TabParent*
ProcessHangMonitor::ForcePaint(mHangMonitorActor, aTabParent, aLayerObserverEpoch);
}
nsresult
ContentParent::TransmitPermissionsFor(nsIChannel* aChannel)
{
MOZ_ASSERT(aChannel);
#ifdef MOZ_PERMISSIONS
- // Check if this channel is going to be used to create a document. If it has
- // LOAD_DOCUMENT_URI set it is trivially creating a document. If
- // LOAD_HTML_OBJECT_DATA is set it may or may not be used to create a
- // document, depending on its MIME type.
- nsLoadFlags loadFlags;
- nsresult rv = aChannel->GetLoadFlags(&loadFlags);
- NS_ENSURE_SUCCESS(rv, rv);
-
- if (!(loadFlags & nsIChannel::LOAD_DOCUMENT_URI)) {
- if (loadFlags & nsIRequest::LOAD_HTML_OBJECT_DATA) {
- nsAutoCString mimeType;
- aChannel->GetContentType(mimeType);
- if (nsContentUtils::HtmlObjectContentTypeForMIMEType(mimeType, nullptr) !=
- nsIObjectLoadingContent::TYPE_DOCUMENT) {
- // The MIME type would not cause the creation of a document
- return NS_OK;
- }
- } else {
- // neither flag was set
- return NS_OK;
- }
+
+ nsresult rv;
+ if (!aChannel->IsDocument()) {
+ return NS_OK;
}
// Get the principal for the channel result, so that we can get the permission
// key for the document which will be created from this response.
nsIScriptSecurityManager* ssm = nsContentUtils::GetSecurityManager();
if (NS_WARN_IF(!ssm)) {
return NS_ERROR_FAILURE;
}