Platform/JS Compartments Mochitest: Difference between revisions

 
(48 intermediate revisions by 4 users not shown)
Line 18: Line 18:


Started build for QA to test.
Started build for QA to test.
Fixed:
* Adblock doesn't seem to filter (tries to call a function on undefined).
* Adblock crashes.


= xpcshell =
= xpcshell =
Line 43: Line 48:
= Mochitest =
= Mochitest =


Run with <code>python runtests.py --total-chunks=20 --this-chunk=n --autorun --debugger=gdb</code> where <code>n</code> is the chunk you want to examine.
Pass.


== Remaining large-ish items ==
== Remaining large-ish items ==
Line 50: Line 55:
* document.domain (we currently don't revoke access to the document's original domain, we probably should do that).
* document.domain (we currently don't revoke access to the document's original domain, we probably should do that).
* Error hacks?
* Error hacks?
* XPCSafeJSObjectWrapper::WrapObject() fails<br>    -> remove XPCSafeJSObjectWrapper
* Fix error messages for property access denied. Old message included two origins, new one doesn't, and it looks like we're not using any of the localization that the old message had. Error console should show both origins, exception message probably (?) shouldn't.
* Fix error messages for property access denied. Old message included two origins, new one doesn't, and it looks like we're not using any of the localization that the old message had. Error console should show both origins, exception message probably (?) shouldn't.
* Confirm that the fix in docshell/test/chrome/test_bug454235.xul is appropriate.
* Confirm that the fix in docshell/test/chrome/test_bug454235.xul is appropriate.
Line 56: Line 60:


FIXED issues:
FIXED issues:
* I allow named frames to be created on xray wrappers so parent[name] works.
* Fix up XrayWrappers
* Fix up XrayWrappers
* Make chrome wrappers expose nothing by default
* Make chrome wrappers expose nothing by default
Line 67: Line 72:
* XPCNW holder objects vs JS_ClearScope()
* XPCNW holder objects vs JS_ClearScope()


failing tests:
== Remaining test failures ==


<pre>
<pre>
http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/test_updatingManifest.html
</pre>
</pre>


Make chrome tests:
Asserts to death:


<pre>
<pre>
[TODO] http://mochi.test:8888/tests/js/src/xpconnect/tests/mochitest/test_cows.html
[Done] /tests/js/src/xpconnect/tests/mochitest/test_bug484459.html (XPCSafeJSObjectWrapper)
[Done but real failures] /tests/js/src/xpconnect/tests/mochitest/test_wrappers.html (XPCSafeJSObjectWrapper)
</pre>
</pre>


== Chunk 1 ==
= Mochichrome =
 
pass, 22848 tests
 
== Chunk 2 ==
 
pass, 11244 tests:
 
== Chunk 3 ==
 
pass, 14532 tests
 
== Chunk 4 ==
 
passed, 19311 tests
 
* test_play_twice.html is notoriously rando-orange, see {{bug|558812}} and {{bug|573232}}
 
== Chunk 5 ==
 
pass, 4977 tests
 
== Chunk 6 ==
 
failed, 4825 tests


<pre>
<pre>
http://mochi.test:8888/tests/dom/tests/mochitest/bugs/test_bug346659.html
Error: win.childWin is undefined
Source File: http://mochi.test:8888/tests/dom/tests/mochitest/bugs/test_bug346659.html
Line: 51
http://mochi.test:8888/tests/dom/tests/mochitest/bugs/test_bug440572.html
failed | test in frame failed. - got "TypeError: parent[name] is undefined", expected "success"
</pre>
</pre>


== Chunk 7 ==
chrome://mochikit/content/chrome/js/src/xpconnect/tests/chrome/test_wrappers-2.xul


pass, 194 tests
Lots of different issues:


== Chunk 8 ==
7257 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/chrome/js/src/xpconnect/tests/chrome/test_wrappers-2.xul | enumeration over XOWs walks the prototype chain - got "host,hostname,port", expected "assign,foopy,hash,host,hostname,href,pathname,port,protocol,reload,replace,search"


pass, 346 tests
Enumeration bug. "for (e in location)" doesn't walk the prototype chain.
== Chunk 9 ==


pass, 159 tests
7259 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/chrome/js/src/xpconnect/tests/chrome/test_wrappers-2.xul | wrapper iterators are properly iterators - got "object", expected "function,function,function,number,string,string,string,string,string,string,string,string"


== Chunk 10 ==
Enumeration bug. "Iterator(new XPCNativeWrapper(location))" is busted. I will look into this further.


pass, 396 tests
7261 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/chrome/js/src/xpconnect/tests/chrome/test_wrappers-2.xul | enumeration over SJOWs walks the prototype chain and works over XOWs - got "", expected "assign,foopy,hash,host,hostname,href,pathname,port,protocol,reload,replace,search"


== Chunk 11 ==
Enumeration bug. Same kind of problem but here we're trying to iterate over iwin.wrappedObject.location.


pass, 234 tests
7268 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/chrome/js/src/xpconnect/tests/chrome/test_wrappers-2.xul | cyclic proto value allowed


== Chunk 12 ==
We do iwin.__proto__ = iwin and expect it to fail, but this just creates a new ordinary data property called __proto__ on the holder.


pass, 396 tests
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


== Chunk 13 ==
iwin.eval("'PASS'") is supposed to succeed, but iwin.eval is undefined.


pass, 458 tests
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'


== Chunk 14 ==
An old feature we didn't retain.  XPCNativeWrapper("") is expected to return
"". Maybe we can just remove the test.


pass, 482 tests
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 (w = new XPCNativeWrapper($('ifr').contentWindow)) {
        w.foopybar = 5;
        ok(!("foopybar" in iwin), "XPCNativeWrappers allow expandos through");
        ...
        iwin.foopy = 5;
        ok(delete w.foopy, "delete returns true");
        is(iwin.foopy, 5, "delete doesn't delete underlying properties");


== Chunk 15 ==
We create an explicit XPCNativeWrapper ''w'' around ''iwin'', a wrapper of an outer window. Expandos of ''w'' must not affect ''iwin'' and vice versa.


pass, 491 tests
I think the basic story here is "there are no same-compartment X-ray wrappers".


== Chunk 16 ==
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


pass, 7163 tests
Possibly just noise. If I comment out the cyclic-__proto__ test, this one
passes.


== Chunk 17 ==
But I can't imagine why iwin.__proto__ appears to be [] here. I looked, and the
value we eventually return is a cross-compartment XrayWrapper of an
OuterWindowProxy. The value should be null.


failed, 573 tests (sloooooooooow to run)
-jorendorff, 10/5/2010


This test fails but it looks like a bad test. It enables UniversalXPConnect and then complains that it can do cross origin access.
= Browserchrome =


<pre>
Pass.
http://mochi.test:8888/tests/js/src/xpconnect/tests/mochitest/test_bug504877.html
</pre>


== Chunk 18 ==
= make check =


pass, 5073 tests
Pass.


== Chunk 19 ==
= make jstestbrowser (jsreftest) =


pass, 89415 tests
Pass.
 
* bent: I fixed test_pluginstream_newstream.html so that it will work, but the underlying cause is a change in our access denied exception messages, which needs to get fixed. Followup bug?
 
== Chunk 20 ==
 
pass, 17909 tests
 
= Mochichrome =
 
35 failing tests, in these files:
 
<pre>
chrome://mochikit/content/chrome/js/src/xpconnect/tests/chrome/test_cows.xul
 
chrome://mochikit/content/chrome/js/src/xpconnect/tests/chrome/test_evalInSandbox.xul
-> add a function that the sandbox can call which forwards to getClassName
 
chrome://mochikit/content/chrome/js/src/xpconnect/tests/chrome/test_wrappers-2.xul
  -> enumeration?
 
chrome://mochikit/content/chrome/layout/base/test/chrome/test_printpreview.xul
</pre>
 
= Browserchrome =
Confirmed users
839

edits