Bug 1348442: Part 4 - Remove support for synchronously loading localized extension CSS. r=jdm draft
authorKris Maglione <maglione.k@gmail.com>
Fri, 17 Mar 2017 16:46:59 -0700
changeset 501334 37580af14e979c3bea083eb53f9f019638869c47
parent 501333 c9f6e9af5aade1054a4cef1d82f56d93466243fa
child 549833 5aec38c3667aeab2f5e6c02a403aa759f25745cc
push id49931
push usermaglione.k@gmail.com
push dateSun, 19 Mar 2017 23:22:27 +0000
reviewersjdm
bugs1348442
milestone55.0a1
Bug 1348442: Part 4 - Remove support for synchronously loading localized extension CSS. r=jdm After switching to loading content stylesheets asynchronously, there are no longer any consumers that require a synchronous channel to load localized CSS, so these workarounds are no longer necessary. MozReview-Commit-ID: AwLSmYf9qL3
netwerk/protocol/res/ExtensionProtocolHandler.cpp
--- a/netwerk/protocol/res/ExtensionProtocolHandler.cpp
+++ b/netwerk/protocol/res/ExtensionProtocolHandler.cpp
@@ -133,54 +133,36 @@ ExtensionProtocolHandler::SubstituteChan
   nsCOMPtr<nsIStreamConverterService> convService =
     do_GetService(NS_STREAMCONVERTERSERVICE_CONTRACTID, &rv);
   NS_ENSURE_SUCCESS(rv, rv);
 
   const char* kFromType = "application/vnd.mozilla.webext.unlocalized";
   const char* kToType = "text/css";
 
   nsCOMPtr<nsIInputStream> inputStream;
-  if (aLoadInfo &&
-      aLoadInfo->GetSecurityMode() == nsILoadInfo::SEC_REQUIRE_CORS_DATA_INHERITS) {
-    // If the channel needs to enforce CORS, we need to open the channel async.
-
-    nsCOMPtr<nsIOutputStream> outputStream;
-    rv = NS_NewPipe(getter_AddRefs(inputStream), getter_AddRefs(outputStream),
-                    0, UINT32_MAX, true, false);
-    NS_ENSURE_SUCCESS(rv, rv);
+  nsCOMPtr<nsIOutputStream> outputStream;
+  rv = NS_NewPipe(getter_AddRefs(inputStream), getter_AddRefs(outputStream),
+                  0, UINT32_MAX, true, false);
+  NS_ENSURE_SUCCESS(rv, rv);
 
-    nsCOMPtr<nsIStreamListener> listener;
-    nsCOMPtr<nsIRequestObserver> observer = new PipeCloser(outputStream);
-    rv = NS_NewSimpleStreamListener(getter_AddRefs(listener), outputStream, observer);
-    NS_ENSURE_SUCCESS(rv, rv);
-
-    nsCOMPtr<nsIStreamListener> converter;
-    rv = convService->AsyncConvertData(kFromType, kToType, listener,
-                                       aURI, getter_AddRefs(converter));
-    NS_ENSURE_SUCCESS(rv, rv);
+  nsCOMPtr<nsIStreamListener> listener;
+  nsCOMPtr<nsIRequestObserver> observer = new PipeCloser(outputStream);
+  rv = NS_NewSimpleStreamListener(getter_AddRefs(listener), outputStream, observer);
+  NS_ENSURE_SUCCESS(rv, rv);
 
-    nsCOMPtr<nsILoadInfo> loadInfo =
-      static_cast<LoadInfo*>(aLoadInfo)->CloneForNewRequest();
-    (*result)->SetLoadInfo(loadInfo);
-
-    rv = (*result)->AsyncOpen2(converter);
-  } else {
-    // Stylesheet loads for extension content scripts require a sync channel.
+  nsCOMPtr<nsIStreamListener> converter;
+  rv = convService->AsyncConvertData(kFromType, kToType, listener,
+                                     aURI, getter_AddRefs(converter));
+  NS_ENSURE_SUCCESS(rv, rv);
 
-    nsCOMPtr<nsIInputStream> sourceStream;
-    if (aLoadInfo && aLoadInfo->GetEnforceSecurity()) {
-      rv = (*result)->Open2(getter_AddRefs(sourceStream));
-    } else {
-      rv = (*result)->Open(getter_AddRefs(sourceStream));
-    }
-    NS_ENSURE_SUCCESS(rv, rv);
+  nsCOMPtr<nsILoadInfo> loadInfo =
+    static_cast<LoadInfo*>(aLoadInfo)->CloneForNewRequest();
+  (*result)->SetLoadInfo(loadInfo);
 
-    rv = convService->Convert(sourceStream, kFromType, kToType,
-                              aURI, getter_AddRefs(inputStream));
-  }
+  rv = (*result)->AsyncOpen2(converter);
   NS_ENSURE_SUCCESS(rv, rv);
 
   nsCOMPtr<nsIChannel> channel;
   rv = NS_NewInputStreamChannelInternal(getter_AddRefs(channel), aURI, inputStream,
                                         NS_LITERAL_CSTRING("text/css"),
                                         NS_LITERAL_CSTRING("utf-8"),
                                         aLoadInfo);
   NS_ENSURE_SUCCESS(rv, rv);