Closed Bug 1263887 Opened 8 years ago Closed 8 years ago

[e10s] Select dropdowns in e10s mode do not notice changes to the <select> after it has opened.

Categories

(Core :: DOM: Core & HTML, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla49
Tracking Status
e10s m9+ ---
firefox47 --- wontfix
firefox48 --- fixed
firefox49 --- fixed

People

(Reporter: Ovidiu, Assigned: mconley)

References

Details

(Whiteboard: btpp-active)

Attachments

(3 files, 1 obsolete file)

Attached video Bug[e10s].mp4
[Affected versions]:

Nightly 48.0a1

[Affected platforms]:
Windows 7 x64
Mac OS X 10.10
Linux Ubuntu 14.04

[Steps to reproduce]:

1. Go to http://fashionchoice.bg/?product=efekten-maksi-zhaket-za-proletta-s-dzhobcheta-v-chetiri-tsvyata

2. You have 2 dropdowns menus, from the first choose 1 item

3. Go to the second dropdown and choose 1 size

4.Go back to the first dropdown and try to choose 1 item again

[Expected result]:

In the dropdown menu I can see a list of item from where I can choose.

[Actual result]:

I can't see the list in the dropdown only if I click it again. 

[Notes]:
This is a e10s issue, I can't reproduce it with e10s disabled. I attached a video where you can see the behaviour of this bug.
tracking-e10s: --- → ?
Assignee: nobody → mconley
Flags: needinfo?(mconley)
Whiteboard: btpp-active
The problem here is that script on the page is adding <option> elements to the list after it's been opened, and we're not responding to that.
Flags: needinfo?(mconley)
Summary: [e10s] The dropdown selector is not working properly. → [e10s] Select dropdowns in e10s mode do not notice changes to the <select> after it has opened.
Review commit: https://reviewboard.mozilla.org/r/47475/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/47475/
Attachment #8742536 - Attachment description: MozReview Request: Bug 1263887 - Update <select>'s on mutation. → MozReview Request: Bug 1263887 - Update <select>'s on mutation for e10s. r?felipe
Attachment #8742909 - Flags: review?(enndeakin)
Attachment #8742536 - Flags: review?(felipc)
Comment on attachment 8742536 [details]
MozReview Request: Bug 1263887 - Update <select>'s on mutation for e10s. r=Felipe

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/47267/diff/1-2/
Comment on attachment 8742909 [details]
MozReview Request: Bug 1263887 - Update the active child on a menulist when setting selection. r=enndeakin

https://reviewboard.mozilla.org/r/47475/#review44505
Attachment #8742909 - Flags: review?(enndeakin) → review+
Attachment #8742536 - Flags: review?(felipc) → review+
Comment on attachment 8742536 [details]
MozReview Request: Bug 1263887 - Update <select>'s on mutation for e10s. r=Felipe

https://reviewboard.mozilla.org/r/47267/#review44927
Backed out for failures in CTP tests, e.g. browser_CTP_crashreporting.js

Backouts:
https://hg.mozilla.org/integration/mozilla-inbound/rev/4b16c1609af5
https://hg.mozilla.org/integration/mozilla-inbound/rev/78b83b86b1aa

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=48ba2783004140f0331ffd4764363b5b0040f127
Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=26348111&repo=mozilla-inbound

14:54:33     INFO -  101 INFO Entering test bound
14:54:33     INFO -  102 INFO TEST-PASS | browser/base/content/test/plugins/browser_CTP_crashreporting.js | Plugin should not be activated -
14:54:33     INFO -  103 INFO TEST-UNEXPECTED-FAIL | browser/base/content/test/plugins/browser_CTP_crashreporting.js | uncaught exception - TypeError: this.menuBoxObject is undefined at set_selectedItem@chrome://global/content/bindings/menulist.xml:257:13
14:54:33     INFO -  set_value@chrome://global/content/bindings/menulist.xml:111:15
14:54:33     INFO -  plugin-popupnotification-center-item_XBL_Constructor@chrome://browser/content/urlbarBindings.xml:1856:9
14:54:33     INFO -  PopupNotifications_showPanel/promise<@resource://gre/modules/PopupNotifications.jsm:747:1
14:54:33     INFO -  Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:937:23
14:54:33     INFO -  this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:816:7
14:54:33     INFO -  Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
14:54:33     INFO -  this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:779:7
14:54:33     INFO -  this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:714:7
14:54:33     INFO -  receiveMessage@resource://testing-common/ContentTask.jsm:113:9
14:54:33     INFO -  Stack trace:
14:54:33     INFO -  chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:simpletestOnerror:1563
14:54:33     INFO -  resource://gre/modules/PopupNotifications.jsm:PopupNotifications_showPanel/promise<:747
14:54:33     INFO -  resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:Handler.prototype.process:937
14:54:33     INFO -  resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:this.PromiseWalker.walkerLoop:816
14:54:33     INFO -  JavaScript error: chrome://global/content/bindings/menulist.xml, line 257: TypeError: this.menuBoxObject is undefined
14:54:33     INFO -  104 INFO Console message: [JavaScript Error: "TypeError: this.menuBoxObject is undefined" {file: "chrome://global/content/bindings/menulist.xml" line: 257}]
14:54:33     INFO -  set_selectedItem@chrome://global/content/bindings/menulist.xml:257:13
14:54:33     INFO -  set_value@chrome://global/content/bindings/menulist.xml:111:15
14:54:33     INFO -  plugin-popupnotification-center-item_XBL_Constructor@chrome://browser/content/urlbarBindings.xml:1856:9
14:54:33     INFO -  PopupNotifications_showPanel/promise<@resource://gre/modules/PopupNotifications.jsm:747:1
14:54:33     INFO -  Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:937:23
14:54:33     INFO -  this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:816:7
14:54:33     INFO -  Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
14:54:33     INFO -  this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:779:7
14:54:33     INFO -  this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:714:7
14:54:33     INFO -  receiveMessage@resource://testing-common/ContentTask.jsm:113:9
14:54:33     INFO -  Xlib:  extension "RANDR" missing on display ":0".
Flags: needinfo?(mconley)
Comment on attachment 8742909 [details]
MozReview Request: Bug 1263887 - Update the active child on a menulist when setting selection. r=enndeakin

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/47475/diff/1-2/
Attachment #8742909 - Attachment description: MozReview Request: Bug 1263887 - Update the active child on a menulist when setting selection. r?Enn → MozReview Request: Bug 1263887 - Update the active child on a menulist when setting selection. r=enndeakin+6102
Attachment #8742536 - Attachment description: MozReview Request: Bug 1263887 - Update <select>'s on mutation for e10s. r?felipe → MozReview Request: Bug 1263887 - Update <select>'s on mutation for e10s. r=Felipe
Comment on attachment 8742536 [details]
MozReview Request: Bug 1263887 - Update <select>'s on mutation for e10s. r=Felipe

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/47267/diff/2-3/
Comment on attachment 8742909 [details]
MozReview Request: Bug 1263887 - Update the active child on a menulist when setting selection. r=enndeakin

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/47475/diff/2-3/
Attachment #8742909 - Attachment description: MozReview Request: Bug 1263887 - Update the active child on a menulist when setting selection. r=enndeakin+6102 → MozReview Request: Bug 1263887 - Update the active child on a menulist when setting selection. r=enndeakin
Comment on attachment 8742536 [details]
MozReview Request: Bug 1263887 - Update <select>'s on mutation for e10s. r=Felipe

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/47267/diff/3-4/
Flags: needinfo?(mconley)
*sigh*. Sorry about that - I was pretty sure that was going to work. I'll do a try push before trying another landing.
Flags: needinfo?(mconley)
Comment on attachment 8742536 [details]
MozReview Request: Bug 1263887 - Update <select>'s on mutation for e10s. r=Felipe

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/47267/diff/4-5/
Try looks good - third time's the charm.
Hey yzen, it looks like the problem with the test hinges on the change I made to menulist.xml. Apparently, even just accessing this.menuBoxObject.activeChild (and not setting it) is enough to cause the accessible/tests/mochitest/selectable/test_menulist.xul test to break with:

26 INFO TEST-UNEXPECTED-FAIL | chrome://mochitests/content/a11y/accessible/tests/mochitest/selectable/test_menulist.xul | addItemToSelection(1): getSelectedChildren: wrong selected children count for ['menupopup node', address: [object XULElement], role: combobox list, name: 'item2', address: [xpconnect wrapped (nsISupports, nsIAccessible, nsIAccessibleSelectable)]] - got +0, expected 1
SimpleTest.is@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:268:5
testSelectableSelection@chrome://mochitests/content/a11y/accessible/tests/mochitest/selectable.js:19:3
doTest/<@chrome://mochitests/content/a11y/accessible/tests/mochitest/selectable/test_menulist.xul:47:9
setTimeout handler*SimpleTest_setTimeoutShim@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:622:12
doTest@chrome://mochitests/content/a11y/accessible/tests/mochitest/selectable/test_menulist.xul:46:7
setTimeout handler*SimpleTest_setTimeoutShim@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:622:12
addA11yLoadEvent/waitForDocLoad/<@chrome://mochitests/content/a11y/accessible/tests/mochitest/common.js:169:9
setTimeout handler*SimpleTest_setTimeoutShim@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:622:12
waitForDocLoad@chrome://mochitests/content/a11y/accessible/tests/mochitest/common.js:159:5
SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:741:59
27 INFO TEST-UNEXPECTED-FAIL | chrome://mochitests/content/a11y/accessible/tests/mochitest/selectable/test_menulist.xul | Can't get accessible for  'cb1_item2'
getAccessible@chrome://mochitests/content/a11y/accessible/tests/mochitest/common.js:276:9
testSelectableSelection@chrome://mochitests/content/a11y/accessible/tests/mochitest/selectable.js:24:23
doTest/<@chrome://mochitests/content/a11y/accessible/tests/mochitest/selectable/test_menulist.xul:47:9
setTimeout handler*SimpleTest_setTimeoutShim@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:622:12
doTest@chrome://mochitests/content/a11y/accessible/tests/mochitest/selectable/test_menulist.xul:46:7
setTimeout handler*SimpleTest_setTimeoutShim@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:622:12
addA11yLoadEvent/waitForDocLoad/<@chrome://mochitests/content/a11y/accessible/tests/mochitest/common.js:169:9
setTimeout handler*SimpleTest_setTimeoutShim@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:622:12
waitForDocLoad@chrome://mochitests/content/a11y/accessible/tests/mochitest/common.js:159:5
SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:741:59
28 INFO TEST-UNEXPECTED-FAIL | chrome://mochitests/content/a11y/accessible/tests/mochitest/selectable/test_menulist.xul | uncaught exception - TypeError: selectedChildren is null at testSelectableSelection@chrome://mochitests/content/a11y/accessible/tests/mochitest/selectable.js:25:9
doTest/<@chrome://mochitests/content/a11y/accessible/tests/mochitest/selectable/test_menulist.xul:47:9
setTimeout handler*SimpleTest_setTimeoutShim@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:622:12
doTest@chrome://mochitests/content/a11y/accessible/tests/mochitest/selectable/test_menulist.xul:46:7
setTimeout handler*SimpleTest_setTimeoutShim@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:622:12
addA11yLoadEvent/waitForDocLoad/<@chrome://mochitests/content/a11y/accessible/tests/mochitest/common.js:169:9
setTimeout handler*SimpleTest_setTimeoutShim@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:622:12
waitForDocLoad@chrome://mochitests/content/a11y/accessible/tests/mochitest/common.js:159:5
SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:741:59

Do you know why that is?
Flags: needinfo?(yzenevich)
Comment on attachment 8742536 [details]
MozReview Request: Bug 1263887 - Update <select>'s on mutation for e10s. r=Felipe

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/47267/diff/5-6/
Attachment #8742909 - Attachment is obsolete: true
Taking ni? off, since we chatted in IRC
Flags: needinfo?(yzenevich)
Comment on attachment 8742536 [details]
MozReview Request: Bug 1263887 - Update <select>'s on mutation for e10s. r=Felipe

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/47267/diff/6-7/
https://hg.mozilla.org/mozilla-central/rev/3dce9ed6c341
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla48
Target Milestone: mozilla48 → mozilla49
Mike, should we uplift your <select> fix to Aurora 48, in case we can enable e10s for some release users with Firefox 48?
Flags: needinfo?(mconley)
Yep. Will request uplift now that this has had time to bake.
Flags: needinfo?(mconley)
Comment on attachment 8742536 [details]
MozReview Request: Bug 1263887 - Update <select>'s on mutation for e10s. r=Felipe

Approval Request Comment
[Feature/regressing bug #]:

e10s

[User impact if declined]:

Users that have e10s enabled, and have opened <select> drop downs on pages that modify the contents of that <select> with script will not see those changes manifest until the <select> is re-opened.

[Describe test coverage new/current, TreeHerder]:

Manual testing, though it's had a number of days to bake now.

[Risks and why]: 

Pretty low, and this affects e10s only.

[String/UUID change made/needed]:

None.
Attachment #8742536 - Flags: approval-mozilla-aurora?
Comment on attachment 8742536 [details]
MozReview Request: Bug 1263887 - Update <select>'s on mutation for e10s. r=Felipe

Fix for dropdown menus, please uplift to aurora.
Attachment #8742536 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Component: DOM → DOM: Core & HTML
Duplicate of this bug: 1244007
You need to log in before you can comment on or make changes to this bug.