Bug 1389723 - Remove @deprecated nsIMIMEInputStream.addContentLength. r?dragana draft
authorMasatoshi Kimura <VYV03354@nifty.ne.jp>
Sat, 12 Aug 2017 13:34:02 +0900
changeset 645264 55a6e16c20dbb095a1e96f5709c391f6b05c0f35
parent 645263 a9cbe31f62657fbac01b3b672d8ec7abd2c5c468
child 645274 97113ca2796a1839606544f71ebabdc3ae59aec5
push id73721
push userVYV03354@nifty.ne.jp
push dateSat, 12 Aug 2017 04:35:05 +0000
reviewersdragana
bugs1389723
milestone57.0a1
Bug 1389723 - Remove @deprecated nsIMIMEInputStream.addContentLength. r?dragana MozReview-Commit-ID: 9b45aozatin
browser/base/content/browser.js
docshell/test/browser/browser_loadURI.js
dom/html/HTMLFormSubmission.cpp
netwerk/base/nsIMIMEInputStream.idl
netwerk/base/nsMIMEInputStream.cpp
netwerk/test/unit/test_post.js
netwerk/test/unit/test_throttling.js
toolkit/components/search/nsSearchService.js
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -2487,17 +2487,16 @@ function getPostDataStream(aPostDataStri
                            aType = "application/x-www-form-urlencoded") {
   let dataStream = Cc["@mozilla.org/io/string-input-stream;1"]
                      .createInstance(Ci.nsIStringInputStream);
   dataStream.data = aPostDataString;
 
   let mimeStream = Cc["@mozilla.org/network/mime-input-stream;1"]
                      .createInstance(Ci.nsIMIMEInputStream);
   mimeStream.addHeader("Content-Type", aType);
-  mimeStream.addContentLength = true;
   mimeStream.setData(dataStream);
   return mimeStream.QueryInterface(Ci.nsIInputStream);
 }
 
 function getLoadContext() {
   return window.QueryInterface(Ci.nsIInterfaceRequestor)
                .getInterface(Ci.nsIWebNavigation)
                .QueryInterface(Ci.nsILoadContext);
--- a/docshell/test/browser/browser_loadURI.js
+++ b/docshell/test/browser/browser_loadURI.js
@@ -16,17 +16,16 @@ function test() {
 
   var dataStream = Cc["@mozilla.org/io/string-input-stream;1"].
                    createInstance(Ci.nsIStringInputStream);
   dataStream.data = gPostData;
 
   var postStream = Cc["@mozilla.org/network/mime-input-stream;1"].
                    createInstance(Ci.nsIMIMEInputStream);
   postStream.addHeader("Content-Type", "application/x-www-form-urlencoded");
-  postStream.addContentLength = true;
   postStream.setData(dataStream);
 
   tab.linkedBrowser.loadURIWithFlags("http://mochi.test:8888/browser/docshell/test/browser/print_postdata.sjs", 0, null, null, postStream);
   BrowserTestUtils.browserLoaded(tab.linkedBrowser).then(() => {
     ContentTask.spawn(tab.linkedBrowser, gPostData, function(postData) {
       var bodyText = content.document.body.textContent;
       is(bodyText, postData, "post data was submitted correctly");
     }).then(() => { finish(); });
--- a/dom/html/HTMLFormSubmission.cpp
+++ b/dom/html/HTMLFormSubmission.cpp
@@ -304,17 +304,16 @@ FSURLEncoded::GetEncodedSubmission(nsIUR
       NS_ENSURE_SUCCESS(rv, rv);
 
       nsCOMPtr<nsIMIMEInputStream> mimeStream(
         do_CreateInstance("@mozilla.org/network/mime-input-stream;1", &rv));
       NS_ENSURE_SUCCESS(rv, rv);
 
       mimeStream->AddHeader("Content-Type",
                             "application/x-www-form-urlencoded");
-      mimeStream->SetAddContentLength(true);
       mimeStream->SetData(dataStream);
 
       *aPostDataStream = mimeStream;
       NS_ADDREF(*aPostDataStream);
     }
 
   } else {
     // Get the full query string
@@ -618,17 +617,16 @@ FSMultipartFormData::GetEncodedSubmissio
   // Make header
   nsCOMPtr<nsIMIMEInputStream> mimeStream
     = do_CreateInstance("@mozilla.org/network/mime-input-stream;1", &rv);
   NS_ENSURE_SUCCESS(rv, rv);
 
   nsAutoCString contentType;
   GetContentType(contentType);
   mimeStream->AddHeader("Content-Type", contentType.get());
-  mimeStream->SetAddContentLength(true);
   uint64_t unused;
   mimeStream->SetData(GetSubmissionBody(&unused));
 
   mimeStream.forget(aPostDataStream);
 
   return NS_OK;
 }
 
@@ -760,17 +758,16 @@ FSTextPlain::GetEncodedSubmission(nsIURI
     }
 
     // Create mime stream with headers and such
     nsCOMPtr<nsIMIMEInputStream> mimeStream
         = do_CreateInstance("@mozilla.org/network/mime-input-stream;1", &rv);
     NS_ENSURE_SUCCESS(rv, rv);
 
     mimeStream->AddHeader("Content-Type", "text/plain");
-    mimeStream->SetAddContentLength(true);
     mimeStream->SetData(bodyStream);
     CallQueryInterface(mimeStream, aPostDataStream);
   }
 
   return rv;
 }
 
 } // anonymous namespace
--- a/netwerk/base/nsIMIMEInputStream.idl
+++ b/netwerk/base/nsIMIMEInputStream.idl
@@ -10,29 +10,16 @@
  * The MIME stream separates headers and a datastream. It also allows
  * automatic creation of the content-length header.
  */
 
 [scriptable, uuid(dcbce63c-1dd1-11b2-b94d-91f6d49a3161)]
 interface nsIMIMEInputStream : nsIInputStream
 {
     /**
-     * When true a "Content-Length" header is automatically added to the
-     * stream. The value of the content-length is automatically calculated
-     * using the available() method on the data stream. The value is
-     * recalculated every time the stream is rewinded to the start.
-     * Not allowed to be changed once the stream has been started to be read.
-     *
-     * @deprecated A Content-Length header is automatically added when
-     * attaching the stream to a channel, so this setting no longer has any
-     * effect, and may not be set to false.
-     */
-    attribute boolean addContentLength;
-
-    /**
      * Adds an additional header to the stream on the form "name: value". May
      * not be called once the stream has been started to be read.
      * @param name   name of the header
      * @param value  value of the header
      */
     void addHeader(in string name, in string value);
 
     /**
--- a/netwerk/base/nsMIMEInputStream.cpp
+++ b/netwerk/base/nsMIMEInputStream.cpp
@@ -87,34 +87,16 @@ nsMIMEInputStream::nsMIMEInputStream() :
 {
 }
 
 nsMIMEInputStream::~nsMIMEInputStream()
 {
 }
 
 NS_IMETHODIMP
-nsMIMEInputStream::GetAddContentLength(bool *aAddContentLength)
-{
-    *aAddContentLength = true;
-    return NS_OK;
-}
-NS_IMETHODIMP
-nsMIMEInputStream::SetAddContentLength(bool aAddContentLength)
-{
-    NS_ENSURE_FALSE(mStartedReading, NS_ERROR_FAILURE);
-    if (!aAddContentLength) {
-      // Content-Length is automatically added by the channel when setting the
-      // upload stream, so setting this to false has no practical effect.
-      return NS_ERROR_FAILURE;
-    }
-    return NS_OK;
-}
-
-NS_IMETHODIMP
 nsMIMEInputStream::AddHeader(const char *aName, const char *aValue)
 {
     NS_ENSURE_FALSE(mStartedReading, NS_ERROR_FAILURE);
 
     HeaderEntry* entry = mHeaders.AppendElement();
     entry->name().Append(aName);
     entry->value().Append(aValue);
 
--- a/netwerk/test/unit/test_post.js
+++ b/netwerk/test/unit/test_post.js
@@ -73,17 +73,16 @@ function run_test() {
   multi.appendStream(sstream1);
   multi.appendStream(buffered);
   multi.appendStream(sstream2);
 
   var mime = Cc["@mozilla.org/network/mime-input-stream;1"].
                createInstance(Ci.nsIMIMEInputStream);
   mime.addHeader("Content-Type", "multipart/form-data; boundary="+BOUNDARY);
   mime.setData(multi);
-  mime.addContentLength = true;
 
   httpserver.registerPathHandler(testpath, serverHandler);
   httpserver.start(-1);
 
   var channel = setupChannel(testpath);
 
   channel.QueryInterface(Ci.nsIUploadChannel)
          .setUploadStream(mime, "", mime.available());
--- a/netwerk/test/unit/test_throttling.js
+++ b/netwerk/test/unit/test_throttling.js
@@ -26,17 +26,16 @@ function run_test() {
   let sstream = Cc["@mozilla.org/io/string-input-stream;1"].
                   createInstance(Ci.nsIStringInputStream);
   sstream.data = 'x'.repeat(size);
 
   let mime = Cc["@mozilla.org/network/mime-input-stream;1"].
                createInstance(Ci.nsIMIMEInputStream);
   mime.addHeader("Content-Type", "multipart/form-data; boundary=zzzzz");
   mime.setData(sstream);
-  mime.addContentLength = true;
 
   let tq = Cc["@mozilla.org/network/throttlequeue;1"]
       .createInstance(Ci.nsIInputChannelThrottleQueue);
   // Make sure the request takes more than one read.
   tq.init(100 + size / 2, 100 + size / 2);
 
   let channel = make_channel("http://localhost:" + PORT + "/testdir");
   channel.QueryInterface(Ci.nsIUploadChannel)
--- a/toolkit/components/search/nsSearchService.js
+++ b/toolkit/components/search/nsSearchService.js
@@ -1120,17 +1120,16 @@ EngineURL.prototype = {
       // stream and supply that as POSTDATA.
       var stringStream = Cc["@mozilla.org/io/string-input-stream;1"].
                          createInstance(Ci.nsIStringInputStream);
       stringStream.data = dataString;
 
       postData = Cc["@mozilla.org/network/mime-input-stream;1"].
                  createInstance(Ci.nsIMIMEInputStream);
       postData.addHeader("Content-Type", "application/x-www-form-urlencoded");
-      postData.addContentLength = true;
       postData.setData(stringStream);
     }
 
     return new Submission(Services.io.newURI(url), postData);
   },
 
   _getTermsParameterName: function SRCH_EURL__getTermsParameterName() {
     let queryParam = this.params.find(p => p.value == "{" + USER_DEFINED + "}");