Backed out changeset f485eaccbb98 (bug 1319904) because it needs a reworked patch.
authorRyan VanderMeulen <ryanvm@gmail.com>
Wed, 30 Nov 2016 17:16:02 -0500
changeset 324884 ae67a98411be9923d1abed36209271f598356729
parent 324883 21e6ee0766a5bf10613a0d200acd436bdc721e5b
child 324885 d582b93a37856a8a1893d46a30f9551d75dfbe4a
push id24
push usermaklebus@msu.edu
push dateTue, 20 Dec 2016 03:11:33 +0000
bugs1319904
milestone53.0a1
backs outf485eaccbb98034a1111eaf4f4871de1868bcb70
Backed out changeset f485eaccbb98 (bug 1319904) because it needs a reworked patch.
browser/base/content/test/general/browser_web_channel.js
toolkit/modules/WebChannel.jsm
--- a/browser/base/content/test/general/browser_web_channel.js
+++ b/browser/base/content/test/general/browser_web_channel.js
@@ -32,36 +32,16 @@ var gTests = [
           resolve();
         });
 
         tab = gBrowser.addTab(HTTP_PATH + HTTP_ENDPOINT + "?generic");
       });
     }
   },
   {
-    desc: "WebChannel generic message in a private window.",
-    run: function* () {
-      let promiseTestDone = new Promise(function(resolve, reject) {
-        let channel = new WebChannel("generic", Services.io.newURI(HTTP_PATH, null, null));
-        channel.listen(function(id, message, target) {
-          is(id, "generic");
-          is(message.something.nested, "hello");
-          channel.stopListening();
-          resolve();
-        });
-      });
-
-      const url = HTTP_PATH + HTTP_ENDPOINT + "?generic";
-      let privateWindow = yield BrowserTestUtils.openNewBrowserWindow({private: true});
-      yield BrowserTestUtils.openNewForegroundTab(privateWindow.gBrowser, url);
-      yield promiseTestDone;
-      yield BrowserTestUtils.closeWindow(privateWindow);
-    }
-  },
-  {
     desc: "WebChannel two way communication",
     run: function* () {
       return new Promise(function(resolve, reject) {
         let tab;
         let channel = new WebChannel("twoway", Services.io.newURI(HTTP_PATH, null, null));
 
         channel.listen(function(id, message, sender) {
           is(id, "twoway", "bad id");
--- a/toolkit/modules/WebChannel.jsm
+++ b/toolkit/modules/WebChannel.jsm
@@ -171,29 +171,29 @@ this.WebChannel = function(id, originOrP
   this.id = id;
   // originOrPermission can be either an nsIURI or a string representing a
   // permission name.
   if (typeof originOrPermission == "string") {
     this._originCheckCallback = requestPrincipal => {
       // The permission manager operates on domain names rather than true
       // origins (bug 1066517).  To mitigate that, we explicitly check that
       // the scheme is https://.
-      let uri = Services.io.newURI(requestPrincipal.originNoSuffix, null, null);
+      let uri = Services.io.newURI(requestPrincipal.origin, null, null);
       if (uri.scheme != "https") {
         return false;
       }
       // OK - we have https - now we can check the permission.
       let perm = Services.perms.testExactPermissionFromPrincipal(requestPrincipal,
                                                                  originOrPermission);
       return perm == Ci.nsIPermissionManager.ALLOW_ACTION;
     }
   } else {
     // a simple URI, so just check for an exact match.
     this._originCheckCallback = requestPrincipal => {
-      return originOrPermission.prePath === requestPrincipal.originNoSuffix;
+      return originOrPermission.prePath === requestPrincipal.origin;
     }
   }
   this._originOrPermission = originOrPermission;
 };
 
 this.WebChannel.prototype = {
 
   /**