Bug 1354349 - Use channel.isDocument in ContentParent::TransmitPermissionsFor r=mystor draft
authorValentin Gosu <valentin.gosu@gmail.com>
Thu, 20 Apr 2017 10:15:16 +0800
changeset 565539 b2c5f8ac671ba1a1acae77dd09e019a76e19555c
parent 565538 eaebc1f5621df7654b4165929e55544fadbf59e3
child 625022 b27433ba06e660cdff294dd3f54e878123aac35c
push id54903
push uservalentin.gosu@gmail.com
push dateThu, 20 Apr 2017 02:15:38 +0000
reviewersmystor
bugs1354349
milestone55.0a1
Bug 1354349 - Use channel.isDocument in ContentParent::TransmitPermissionsFor r=mystor MozReview-Commit-ID: L9b6UeXJ8o5
dom/ipc/ContentParent.cpp
--- 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;
   }