Platform/JS Compartments Mochitest: Difference between revisions

Line 123: Line 123:
  7269 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/chrome/js/src/xpconnect/tests/chrome/test_wrappers-2.xul | iwin.eval does not throw an exception
  7269 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/chrome/js/src/xpconnect/tests/chrome/test_wrappers-2.xul | iwin.eval does not throw an exception


iwin.eval("'PASS'") must not throw an exception. But it is throwing.
iwin.eval("'PASS'") is supposed to succeed, but iwin.eval is undefined.
 
iwin.eval is undefined.


  7271 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/chrome/js/src/xpconnect/tests/chrome/test_wrappers-2.xul | Unable to wrap a primitive, even without 'new'
  7271 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/chrome/js/src/xpconnect/tests/chrome/test_wrappers-2.xul | Unable to wrap a primitive, even without 'new'
Line 133: Line 131:


  7276 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/chrome/js/src/xpconnect/tests/chrome/test_wrappers-2.xul | XPCNativeWrappers allow expandos through
  7276 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/chrome/js/src/xpconnect/tests/chrome/test_wrappers-2.xul | XPCNativeWrappers allow expandos through
7284 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/chrome/js/src/xpconnect/tests/chrome/test_wrappers-2.xul | delete doesn't delete underlying properties - got undefined, expected 5
     let iwin = $('ifr').contentWindow;
     let iwin = $('ifr').contentWindow;
     let (w = new XPCNativeWrapper($('ifr').contentWindow)) {
     let (w = new XPCNativeWrapper($('ifr').contentWindow)) {
         w.foopybar = 5;
         w.foopybar = 5;
         ok(!("foopybar" in iwin), "XPCNativeWrappers allow expandos through");
         ok(!("foopybar" in iwin), "XPCNativeWrappers allow expandos through");
        ...
XPCNativeWrappers must not allow expandos through. But they do.
7284 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/chrome/js/src/xpconnect/tests/chrome/test_wrappers-2.xul | delete doesn't delete underlying properties - got undefined, expected 5
    let iwin = $('ifr').contentWindow;
    let (w = new XPCNativeWrapper($('ifr').contentWindow)) {
         ...
         ...
         iwin.foopy = 5;
         iwin.foopy = 5;
Line 149: Line 141:
         is(iwin.foopy, 5, "delete doesn't delete underlying properties");
         is(iwin.foopy, 5, "delete doesn't delete underlying properties");


Again, an XPCNativeWrapper must not allow chrome to delete expando
We create an explicit XPCNativeWrapper ''w'' around ''iwin'', a wrapper of an outer window. Expandos of ''w'' must not affect ''iwin'' and vice versa.
properties. I'm not sure why we don't want to allow that, but we're allowing
 
it.
I think the basic story here is "there are no same-compartment X-ray wrappers".  


  7288 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/chrome/js/src/xpconnect/tests/chrome/test_wrappers-2.xul | allowed to update iwin.__proto__ to null - got [], expected null
  7288 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/chrome/js/src/xpconnect/tests/chrome/test_wrappers-2.xul | allowed to update iwin.__proto__ to null - got [], expected null
638

edits