Bug 1305162: Part 3 - Allow requestBody in release builds. r=mixedpuppy draft
authorKris Maglione <maglione.k@gmail.com>
Fri, 09 Dec 2016 14:37:48 -1000
changeset 458717 a3ea454571c3d6185a32760006fe786233e05dd4
parent 458716 e3115f38e1079569055b3b056d25de22759cad39
child 541715 c058cb793f6c18b39a93c9839ee320c4b30a76f1
push id41026
push usermaglione.k@gmail.com
push dateTue, 10 Jan 2017 22:29:18 +0000
reviewersmixedpuppy
bugs1305162
milestone53.0a1
Bug 1305162: Part 3 - Allow requestBody in release builds. r=mixedpuppy MozReview-Commit-ID: AmlVoDduXHf
toolkit/components/extensions/test/mochitest/test_ext_webrequest_upload.html
toolkit/modules/addons/WebRequest.jsm
--- a/toolkit/components/extensions/test/mochitest/test_ext_webrequest_upload.html
+++ b/toolkit/components/extensions/test/mochitest/test_ext_webrequest_upload.html
@@ -64,24 +64,23 @@ add_task(function* test_setup() {
     [blob.name]: blob,
     [file.name]: file,
   };
 });
 
 function background() {
   const FILTERS = {urls: ["<all_urls>"]};
 
-  let requestBodySupported = true;
-
   function onUpload(details) {
     let url = new URL(details.url);
     let upload = url.searchParams.get("upload");
-    if (!upload || !requestBodySupported) {
+    if (!upload) {
       return;
     }
+
     let requestBody = details.requestBody;
     browser.test.log(`onBeforeRequest upload: ${details.url} ${JSON.stringify(details.requestBody)}`);
     browser.test.assertTrue(!!requestBody, `Intercepted upload ${details.url} #${details.requestId} ${upload} have a requestBody`);
     if (!requestBody) {
       return;
     }
     let byteLength = parseInt(upload, 10);
     if (byteLength) {
@@ -105,31 +104,18 @@ function background() {
     FILTERS);
 
   let onBeforeRequest = details => {
     browser.test.log(`${name} ${details.requestId} ${details.url}`);
 
     onUpload(details);
   };
 
-  try {
-    browser.webRequest.onBeforeRequest.addListener(
-      onBeforeRequest, FILTERS, ["requestBody"]);
-  } catch (e) {
-    browser.test.assertTrue(/\brequestBody\b/.test(e.message),
-                            "Request body is unsupported");
-
-    // requestBody is disabled in release builds
-    if (!/\brequestBody\b/.test(e.message)) {
-      throw e;
-    }
-
-    browser.webRequest.onBeforeRequest.addListener(
-      onBeforeRequest, FILTERS);
-  }
+  browser.webRequest.onBeforeRequest.addListener(
+    onBeforeRequest, FILTERS, ["requestBody"]);
 }
 
 add_task(function* test_xhr_forms() {
   let extension = ExtensionTestUtils.loadExtension({
     manifest: {
       permissions: [
         "webRequest",
         "webRequestBlocking",
--- a/toolkit/modules/addons/WebRequest.jsm
+++ b/toolkit/modules/addons/WebRequest.jsm
@@ -14,18 +14,16 @@ const Cu = Components.utils;
 const Cr = Components.results;
 
 const {nsIHttpActivityObserver, nsISocketTransport} = Ci;
 
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource://gre/modules/Task.jsm");
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
-XPCOMUtils.defineLazyModuleGetter(this, "AppConstants",
-                                  "resource://gre/modules/AppConstants.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "BrowserUtils",
                                   "resource://gre/modules/BrowserUtils.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "ExtensionUtils",
                                   "resource://gre/modules/ExtensionUtils.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "WebRequestCommon",
                                   "resource://gre/modules/WebRequestCommon.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "WebRequestUpload",
                                   "resource://gre/modules/WebRequestUpload.jsm");
@@ -838,24 +836,18 @@ HttpObserverManager = {
   },
 
   onStopRequest(channel, loadContext) {
     this.runChannelListener(channel, loadContext, "onStop");
   },
 };
 
 var onBeforeRequest = {
-  get allowedOptions() {
-    delete this.allowedOptions;
-    this.allowedOptions = ["blocking"];
-    if (!AppConstants.RELEASE_OR_BETA) {
-      this.allowedOptions.push("requestBody");
-    }
-    return this.allowedOptions;
-  },
+  allowedOptions: ["blocking", "requestBody"],
+
   addListener(callback, filter = null, opt_extraInfoSpec = null) {
     let opts = parseExtra(opt_extraInfoSpec, this.allowedOptions);
     opts.filter = parseFilter(filter);
     ContentPolicyManager.addListener(callback, opts);
     HttpObserverManager.addListener("opening", callback, opts);
   },
 
   removeListener(callback) {