Closed Bug 1136910 Opened 5 years ago Closed 5 years ago

Intermittent browser_tab_dragdrop.js | uncaught exception - uncaught exception: undefined at :0 | Test timed out | Found a browser window

Categories

(Firefox :: Tabbed Browser, defect)

defect
Not set
Points:
2

Tracking

()

RESOLVED FIXED
Firefox 39
Iteration:
39.2 - 23 Mar
Tracking Status
e10s + ---
firefox37 --- unaffected
firefox38 --- unaffected
firefox39 --- fixed
firefox-esr31 --- unaffected

People

(Reporter: RyanVM, Assigned: mossop)

References

(Blocks 1 open bug)

Details

(Keywords: intermittent-failure)

Attachments

(2 files, 1 obsolete file)

11:28:42 INFO - 791 INFO TEST-UNEXPECTED-FAIL | browser/base/content/test/general/browser_tab_dragdrop.js | uncaught exception - uncaught exception: undefined at :0
11:28:42 INFO - Stack trace:
11:28:42 INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:simpletestOnerror:1476
11:28:42 INFO - null:null:0
11:28:42 INFO - JavaScript error: , line 0: uncaught exception: undefined
11:28:42 INFO - 792 INFO Console message: [JavaScript Warning: "unsafe CPOW usage" {file: "chrome://global/content/bindings/remote-browser.xml" line: 162}]
11:28:42 INFO - 793 INFO Console message: [JavaScript Error: "uncaught exception: undefined"]
11:28:42 INFO - 794 INFO Console message: [JavaScript Error: "Error: operation not possible on dead CPOW"]
11:29:25 INFO - libpng warning: zero length keyword
11:29:25 INFO - libpng warning: Empty language field in iTXt chunk
11:29:25 INFO - TEST-INFO | screencapture: exit 0
11:29:25 INFO - 795 INFO TEST-UNEXPECTED-FAIL | browser/base/content/test/general/browser_tab_dragdrop.js | Test timed out - expected PASS
11:29:25 INFO - 796 INFO MEMORY STAT vsize after test: 3790696448
11:29:25 INFO - 797 INFO MEMORY STAT residentFast after test: 671367168
11:29:25 INFO - 798 INFO MEMORY STAT heapAllocated after test: 144823592
11:29:25 INFO - 799 INFO TEST-OK | browser/base/content/test/general/browser_tab_dragdrop.js | took 45071ms
11:29:25 INFO - 800 INFO checking window state
11:29:25 INFO - 801 INFO TEST-UNEXPECTED-FAIL | browser/base/content/test/general/browser_tab_dragdrop.js | Found a browser window after previous test timed out - expected PASS
Flags: needinfo?(dtownsend)
I just hit this on try. Above the test failure there are a ton of PBackgroundTest related ipc failures, I wonder if that has something to do with this.

https://treeherder.mozilla.org/#/jobs?repo=try&revision=1e6c41b44a9d
Looks like I might have mucked up fixing this test in bug 1087966 so let's correct that and remove all the CPOW traffic and see where that gets us.
Assignee: nobody → dtownsend
Iteration: --- → 39.1 - 9 Mar
Points: --- → 2
Flags: needinfo?(dtownsend) → firefox-backlog+
Status: NEW → ASSIGNED
Flags: qe-verify?
Attached file MozReview Request: bz://1136910/Mossop (obsolete) —
/r/5065 - Bug 1136910: Fix browser_tab_dragdrop.js to avoid CPOWs and correctly test clicks.

Pull down this commit:

hg pull review -r 6db7a8f3f8bb187ebfd11a14e1313b4ceeee921e
Attachment #8575325 - Flags: review?(mconley)
Comment on attachment 8575325 [details]
MozReview Request: bz://1136910/Mossop

/r/5065 - Bug 1136910: Fix browser_tab_dragdrop.js to avoid CPOWs and correctly test clicks.

Pull down this commit:

hg pull review -r d05dbdde9eb028f331f2e193b83d1cc96f54b1e0
The test here relies on bug 1128060
Depends on: 1128060
Iteration: 39.1 - 9 Mar → 39.2 - 23 Mar
Blocks: e10s-tests
Comment on attachment 8575325 [details]
MozReview Request: bz://1136910/Mossop

https://reviewboard.mozilla.org/r/5063/#review4223

This looks good - just some questions. Thanks!

::: browser/base/content/test/general/browser_tab_dragdrop.js
(Diff revision 2)
> -  function moveTabTo(a, b) {
> +function moveTabTo(a, b) {

moveTabTo is really not the right name here - that suggests that we're moving the tab elements around, not swap/closing. While you're here, can we call this swapAndCloseTab or something?

::: browser/base/content/test/general/browser_tab_dragdrop.js
(Diff revision 2)
> -    var plugin = tabs[4].linkedBrowser.contentDocument.wrappedJSObject.body.firstChild;
> +  let plugin = tabs[4].linkedBrowser.contentDocument.wrappedJSObject.body.firstChild;

Still using a CPOW here. Was the aim of this patch to eliminate all CPOW usage? Or just a large chunk of them?

::: browser/base/content/test/general/browser_tab_dragdrop.js
(Diff revision 2)
> +  tabs[4].linkedBrowser.permanentKey = { foo: "bar" };

Can you mention that you're going to be checking for this at the end of the test?
Attachment #8575325 - Flags: review?(mconley) → review+
https://reviewboard.mozilla.org/r/5063/#review4233

> Can you mention that you're going to be checking for this at the end of the test?

Oh that's left over from debugging, I'll drop it.

> Still using a CPOW here. Was the aim of this patch to eliminate all CPOW usage? Or just a large chunk of them?

Ideally all but getting rid of the plugin bits looked harder so I left it for now. Had you read the changeset comment you would have seen that :p
Flags: qe-verify? → qe-verify-
Blocks: 1135130
So fixing the browser_tab_dragdrop test was causing a new reflow to show up in browser_tabopen_reflows. What was happening is the click test in browser_tab_dragdrop was leaving the mouse cursor in the middle of the screen then when browser_tabopen_reflows opens about:newtab the mouse is conveniently hovering over a tile for dummy_page.html because by that point in the test run that page has been loaded enough to show up. This causes the link status display to appear causing a reflow while it figures out whether the mouse is overlapping it or not.

The simplest solution I found was just to simulate a click outside of the tiled area in content before opening the new tab, try runs show this solves the problem. I also ended up converting this test to task based.
Flags: needinfo?(dtownsend)
Attachment #8578689 - Flags: review?(ttaubert)
Comment on attachment 8578689 [details] [diff] [review]
fix browser_tabopen_reflows.js

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

Great work figuring this out and thanks for updating the test!

::: browser/base/content/test/general/browser_tabopen_reflows.js
@@ +107,5 @@
> +  docShell.addWeakReflowObserver(observer);
> +  BrowserOpenTab();
> +
> +  // Wait until the tabopen animation has finished.
> +  yield waitForTransitionEnd()

nit: missing semicolon
Attachment #8578689 - Flags: review?(ttaubert) → review+
https://hg.mozilla.org/mozilla-central/rev/2f0f28241140
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 39
No longer blocks: 1135130
Attachment #8575325 - Attachment is obsolete: true
Attachment #8619596 - Flags: review+
You need to log in before you can comment on or make changes to this bug.