Closed Bug 1115063 Opened 6 years ago Closed 6 years ago

test_localStorageQuotaPrivateBrowsing_perwindowpb.html fails when run as a standalone directory

Categories

(Firefox :: Private Browsing, defect)

All
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
Firefox 38

People

(Reporter: vaibhav1994, Assigned: jmaher)

References

Details

Attachments

(1 file)

in bug 1110982, we are looking to enable tests where we run a fresh browser instance per directory.  Usually what happens is that a few tests fail because they accidentally depend on the state of the browser from an earlier test.

In the try run:
https://treeherder.mozilla.org/ui/#/jobs?repo=try&revision=1a5fa04f057a

In the linux opt/debug oth chunks, the test fails as following:
 1111 INFO TEST-UNEXPECTED-FAIL | dom/tests/mochitest/localstorage/test_localStorageQuotaPrivateBrowsing_perwindowpb.html | Test timed out. - expected PASS
this reproduces locally for me on linux64:
./mach mochitest-chrome dom/tests/mochitest/localstorage/

here is some console output where I have hit ctrl+c to terminate it:
0 INFO SimpleTest START
1 INFO TEST-START | dom/tests/mochitest/localstorage/test_localStorageQuotaPrivateBrowsing_perwindowpb.html
-*-*- UserCustomizations (parent): document created: http://mochi.test:8888/chrome/dom/tests/mochitest/localstorage/page_blank.html
-*-*- UserCustomizations (parent): _injectInWindow
-*-*- UserCustomizations (parent): principal status: 0
2 INFO Private window loaded
3 INFO must wait for focus
4 INFO Running test: 1
WARNING: content window passed to PrivateBrowsingUtils.isWindowPrivate. Use isContentWindowPrivate instead (but only for frame scripts).
pbu_isWindowPrivate@resource://gre/modules/PrivateBrowsingUtils.jsm:25:14
@chrome://browser/content/aboutPrivateBrowsing.js:12:6
WARNING: content window passed to PrivateBrowsingUtils.isWindowPrivate. Use isContentWindowPrivate instead (but only for frame scripts).
pbu_isWindowPrivate@resource://gre/modules/PrivateBrowsingUtils.jsm:25:14
@chrome://browser/content/aboutPrivateBrowsing.js:37:8
###!!! [Parent][OnMaybeDequeueOne] Error: Channel closing: too late to send/recv, messages will be lost
###!!! [Parent][OnMaybeDequeueOne] Error: Channel closing: too late to send/recv, messages will be lost
###!!! [Parent][MessageChannel] Error: Channel closing: too late to send/recv, messages will be lost
IPDL protocol error: Handler for PBackgroundTest returned error code
###!!! [Parent][DispatchAsyncMessage] Error: (msgtype=0x120001,name=PBackground::Msg_PBackgroundTestConstructor) Processing error: message was deserialized, but the handler returned false (indicating failure)
###!!! [Parent][OnMaybeDequeueOne] Error: Channel closing: too late to send/recv, messages will be lost
###!!! [Parent][OnMaybeDequeueOne] Error: Channel closing: too late to send/recv, messages will be lost
TEST-INFO | Main app process: exit 0
odd, I can't get this running at all locally, maybe there is something else required to run this test.
Blocks: 1110982
this continues to be a problem, you can see it on linux opt (waiting on results from other jobs):
https://treeherder.mozilla.org/#/jobs?repo=try&revision=8e4065c13a17

I ran this on a linux 32 vm (just downloaded the bits and did it all manually) and was able to reproduce it.

When looking at this, I see that we get into case 1 where we want to set slave.location:
https://dxr.mozilla.org/mozilla-central/source/dom/tests/mochitest/localstorage/test_localStorageQuotaPrivateBrowsing_perwindowpb.html?from=test_localStorageQuotaPrivateBrowsing_perwindowpb.html&case=true#57

the problem is that after doing that slave.location remains about:blank.  Maybe we are setting data on the wrong window, maybe there is some small thing that has changed which requires us to do an extra step to change the location of the private browsing window.

One other quirk here is that when we are trying to set the location on the slave, we believe it is the content_page, but in fact the UI looks to be about:blank (or whatever the default private browsing page is)

Ehsan, is there anything you could suggest we do to work on this issue?
Flags: needinfo?(ehsan)
This test uses a custom version of testOnWindow, which doesn't wait for about:privatebrowsing to be loaded on the new window.  That may be the reason behind this issue.

One thing that can be tried here is to copy the testOnWindow and whenDelayedStartupFinished functions from <https://dxr.mozilla.org/mozilla-central/source/dom/tests/mochitest/beacon/test_beaconCookies.html> and use them in this test (by basically replacing its testOnWindow implementation.)
Flags: needinfo?(ehsan)
tested this locally, it would fail 100%, now it passes.
Assignee: nobody → jmaher
Status: NEW → ASSIGNED
Attachment #8554669 - Flags: review?(ehsan)
Comment on attachment 8554669 [details] [diff] [review]
update test to use a more modern testonwindow (1.0)

Review of attachment 8554669 [details] [diff] [review]:
-----------------------------------------------------------------

::: dom/tests/mochitest/localstorage/test_localStorageQuotaPrivateBrowsing_perwindowpb.html
@@ +175,4 @@
>  }
>  
> +function testOnWindow(aIsPrivate, callback) {
> +  var mainWindow = window.QueryInterface(Ci.nsIInterfaceRequestor)

Please remove the now unused mainWindow variable from line 27.
Attachment #8554669 - Flags: review?(ehsan) → review+
https://hg.mozilla.org/mozilla-central/rev/4244155f633a
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 38
You need to log in before you can comment on or make changes to this bug.