Closed Bug 1479521 Opened Last year Closed Last year

Refactor JsTerm autocompletion code & behavior

Categories

(DevTools :: Console, defect, P1)

defect

Tracking

(firefox-esr52 unaffected, firefox-esr60 unaffected, firefox61 unaffected, firefox62 unaffected, firefox63 fixed)

RESOLVED FIXED
Firefox 63
Tracking Status
firefox-esr52 --- unaffected
firefox-esr60 --- unaffected
firefox61 --- unaffected
firefox62 --- unaffected
firefox63 --- fixed

People

(Reporter: bgrins, Assigned: nchevobbe)

References

Details

(Keywords: regression, Whiteboard: [boogaloo-mvp])

Attachments

(5 files, 3 obsolete files)

If I hit `.` in the middle of an existing string, then it opens the autocomplete popup with the first item pre-selected. When I press "right" I’m thinking "move the cursor to the right" but it treats it as "accept the autocomplete suggestion".

I haven't taken a regression range, but I expect this behavior changed in Bug 1463674.
Whiteboard: [boogaloo-mvp] → [boogaloo-mvp] [triage]
Priority: -- → P2
Whiteboard: [boogaloo-mvp] [triage] → [boogaloo-mvp]
Assignee: nobody → nchevobbe
Status: NEW → ASSIGNED
Priority: P2 → P1
Re-purposing this bug with a wider scope to refactor the autocompletion code which is a bit hard to follow.
In the meantime, we'll fix small autocompletion bugs like this one, Bug 1334130 and Bug 1451612.
Summary: Pressing 'right' accepts autocomplete suggestion even when there's text to the right of the cursor → Refactor JsTerm autocompletion code & behavior
Duplicate of this bug: 1451612
Duplicate of this bug: 1334130
We used to rely on different things to both display
the autocompletion text and accept an autocompletion.
This patches introduces new helper functions in order
to make the code more easy to reason about.
We also rollback our decision to show the popup when
there is only 1 item in the autocompletion list in
order to be more consistent with what Chrome does.

MozReview-Commit-ID: BZ98OiC7oEQ
Attachment #8998105 - Attachment is obsolete: true
We used to rely on different things to both display
the autocompletion text and accept an autocompletion.
This patches introduces new helper functions in order
to make the code more easy to reason about.
We also rollback our decision to show the popup when
there is only 1 item in the autocompletion list in
order to be more consistent with what Chrome does.
The test wasn't doing what it was supposed to do (there was definitely
an autocomplete text displayed, we were not waiting properly for it.).
Also, the original issue with this was that that an unwanted token was
entered instead of the one the user wanted (user generated). Maybe at
that time the autocomplete did not contained user defined variables,
but now we do, and we are testing that in other tests.

Depends on D2824
Some test were relying on the existence of the complete function
and were using it in order to do integration test.
We modify those and instead trigger real user interaction for
making those assertions.
Additional test cases are added to the test files they fit in
so we have a broader coverage of user interaction in regard
to autocompletion.

Depends on D2825
Attachment #8998107 - Flags: review?(odvarko)
Attachment #8998108 - Flags: review?(odvarko)
Attachment #8998109 - Flags: review?(odvarko)
Attachment #8998110 - Flags: review?(odvarko)
Depends on: 1479758
Comment on attachment 8998107 [details]
Bug 1479521 - Refactor JsTerm autocompletion behavior; r=Honza.

Jan Honza Odvarko [:Honza] has approved the revision.
Attachment #8998107 - Flags: review+
Comment on attachment 8998108 [details]
Bug 1479521 - Remove browser_jsterm_no_autocompletion_on_defined_variables.js; r=Honza.

Jan Honza Odvarko [:Honza] has approved the revision.
Attachment #8998108 - Flags: review+
Comment on attachment 8998109 [details]
Bug 1479521 - Update tests to match the new jsterm behavior; r=Honza.

Jan Honza Odvarko [:Honza] has approved the revision.
Attachment #8998109 - Flags: review+
Comment on attachment 8998110 [details]
Bug 1479521 - Only run browser_jsterm_accessibility.js with old jsterm; r=Honza.

Jan Honza Odvarko [:Honza] has approved the revision.
Attachment #8998110 - Flags: review+
Pushed by nchevobbe@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/39c853b19002
Refactor JsTerm autocompletion behavior; r=Honza.
Pushed by nchevobbe@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/67fc7d23d665
Remove browser_jsterm_no_autocompletion_on_defined_variables.js; r=Honza.
Pushed by nchevobbe@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/618fe87eb9f0
Update tests to match the new jsterm behavior; r=Honza.
Pushed by nchevobbe@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ce455e421b0b
Only run browser_jsterm_accessibility.js with old jsterm; r=Honza.
Backout by btara@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/818a07277354
Backed out changeset 39c853b19002 webconsole/autocomplete.js failures CLOSED TREE
Backout by btara@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/5f7aa22e5ee6
Backed out 3 changesets for webconsole/autocomplete.js failures CLOSED TREE
Backed out 4 changesets (Bug 1479521) for webconsole/autocomplete.js failures.

Pushes with failures: 
https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=39c853b19002e947f3b3b0dd93f50ebd37186f4e
https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=67fc7d23d665f175f6f61448a5afbbb9f712395b
https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=618fe87eb9f0f55f7b9e35d2fcb7e69649e9fb4b
https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=ce455e421b0b4656a66dca47b004ba61669ba022

Backout links:
https://hg.mozilla.org/integration/autoland/rev/818a07277354cacbf0956fdaed0100771dde3a92
https://hg.mozilla.org/integration/autoland/rev/5f7aa22e5ee66a9b4644273066d0d8c02825c3e5

Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=193319474&repo=autoland&lineNumber=1086


09:54:21     INFO -  PID 7517 | Finished Waiting until: has file metadata
09:54:21     INFO -  PID 7517 | Wait for pending paints on 'custom.jsdebugger'
09:54:21     INFO -  PID 7517 | 'custom.jsdebugger.reload.settle.DAMP' took 0.1582529999941471ms.
09:54:21     INFO -  PID 7517 | Waiting for debugger panel
09:54:21     INFO -  PID 7517 | Creating context
09:54:21     INFO -  PID 7517 | Pausing debugger
09:54:21     INFO -  PID 7517 | add breakpoint
09:54:21     INFO -  PID 7517 | Run function in content process: window.hitBreakpoint()
09:54:21     INFO -  PID 7517 | remove all breakpoints
09:54:21     INFO -  PID 7517 | console.warn: "iterable.length has been deprecated, use iterable.size or iterable.count(). This warning will become a silent error in a future version. get@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/immutable.js:4667:21\nremoveBreakpoints/onBreakpointsCleared<@chrome://damp/content/tests/debugger/debugger-helpers.js:248:15\nwaitForState/<@chrome://damp/content/tests/debugger/debugger-helpers.js:24:9\nwaitForState@chrome://damp/content/tests/debugger/debugger-helpers.js:20:10\nremoveBreakpoints@chrome://damp/content/tests/debugger/debugger-helpers.js:246:33\nasync*pauseDebuggerAndLog@chrome://damp/content/tests/debugger/custom.js:52:9\nasync*module.exports@chrome://damp/content/tests/debugger/custom.js:29:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/inspector/custom.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/webconsole/custom.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/netmonitor/complicated.js:25:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/styleeditor/complicated.js:15:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/debugger/complicated.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/inspector/complicated.js:18:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\n"
09:54:21     INFO -  PID 7517 | console.warn: "iterable.length has been deprecated, use iterable.size or iterable.count(). This warning will become a silent error in a future version. get@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/immutable.js:4667:21\nremoveBreakpoints/onBreakpointsCleared<@chrome://damp/content/tests/debugger/debugger-helpers.js:248:15\nwaitForState/</unsubscribe<@chrome://damp/content/tests/debugger/debugger-helpers.js:32:11\ndispatch@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/redux.js:416:7\nwaitUntilService/</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/wait-service.js:71:20\npromiseMiddleware/</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/promise.js:31:14\nthunk/</</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/thunk.js:31:100\ndispatch@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/redux.js:755:18\npromiseMiddleware/</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/promise.js:41:5\nthunk/</</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/thunk.js:31:100\ndispatch@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/redux.js:755:18\nremoveBreakpoint/<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/breakpoints/index.js:79:12\nthunk/</</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/thunk.js:31:45\ndispatch@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/redux.js:755:18\nremoveBreakpoints/</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/breakpoints/index.js:208:49\nremoveBreakpoints/<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/breakpoints/index.js:208:24\nasync*thunk/</</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/thunk.js:31:45\nbindActionCreator/<@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/redux.js:644:12\nremoveBreakpoints@chrome://damp/content/tests/debugger/debugger-helpers.js:250:9\nasync*pauseDebuggerAndLog@chrome://damp/content/tests/debugger/custom.js:52:9\nasync*module.exports@chrome://damp/content/tests/debugger/custom.js:29:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/inspector/custom.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/webconsole/custom.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/netmonitor/complicated.js:25:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/styleeditor/complicated.js:15:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/debugger/complicated.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/inspector/complicated.js:18:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\n"
09:54:21     INFO -  PID 7517 | Garbage collect
09:54:22     INFO -  PID 7517 | add breakpoint
09:54:22     INFO -  PID 7517 | Run function in content process: window.hitBreakpoint()
09:54:24     INFO -  PID 7517 | remove all breakpoints
09:54:24     INFO -  PID 7517 | console.warn: "iterable.length has been deprecated, use iterable.size or iterable.count(). This warning will become a silent error in a future version. get@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/immutable.js:4667:21\nremoveBreakpoints/onBreakpointsCleared<@chrome://damp/content/tests/debugger/debugger-helpers.js:248:15\nwaitForState/<@chrome://damp/content/tests/debugger/debugger-helpers.js:24:9\nwaitForState@chrome://damp/content/tests/debugger/debugger-helpers.js:20:10\nremoveBreakpoints@chrome://damp/content/tests/debugger/debugger-helpers.js:246:33\nasync*stepDebuggerAndLog@chrome://damp/content/tests/debugger/custom.js:90:11\nasync*module.exports@chrome://damp/content/tests/debugger/custom.js:30:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/inspector/custom.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/webconsole/custom.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/netmonitor/complicated.js:25:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/styleeditor/complicated.js:15:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/debugger/complicated.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/inspector/complicated.js:18:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\n"
09:54:24     INFO -  PID 7517 | console.warn: "iterable.length has been deprecated, use iterable.size or iterable.count(). This warning will become a silent error in a future version. get@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/immutable.js:4667:21\nremoveBreakpoints/onBreakpointsCleared<@chrome://damp/content/tests/debugger/debugger-helpers.js:248:15\nwaitForState/</unsubscribe<@chrome://damp/content/tests/debugger/debugger-helpers.js:32:11\ndispatch@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/redux.js:416:7\nwaitUntilService/</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/wait-service.js:71:20\npromiseMiddleware/</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/promise.js:31:14\nthunk/</</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/thunk.js:31:100\ndispatch@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/redux.js:755:18\npromiseMiddleware/</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/promise.js:41:5\nthunk/</</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/thunk.js:31:100\ndispatch@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/redux.js:755:18\nremoveBreakpoint/<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/breakpoints/index.js:79:12\nthunk/</</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/thunk.js:31:45\ndispatch@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/redux.js:755:18\nremoveBreakpoints/</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/breakpoints/index.js:208:49\nremoveBreakpoints/<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/breakpoints/index.js:208:24\nasync*thunk/</</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/thunk.js:31:45\nbindActionCreator/<@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/redux.js:644:12\nremoveBreakpoints@chrome://damp/content/tests/debugger/debugger-helpers.js:250:9\nasync*stepDebuggerAndLog@chrome://damp/content/tests/debugger/custom.js:90:11\nasync*module.exports@chrome://damp/content/tests/debugger/custom.js:30:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/inspector/custom.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/webconsole/custom.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/netmonitor/complicated.js:25:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/styleeditor/complicated.js:15:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/debugger/complicated.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/inspector/complicated.js:18:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\n"
09:54:24     INFO -  PID 7517 | Garbage collect
09:54:24     INFO -  PID 7517 | add breakpoint
09:54:24     INFO -  PID 7517 | Run function in content process: window.hitBreakpoint()
09:54:25     INFO -  PID 7517 | remove all breakpoints
09:54:25     INFO -  PID 7517 | console.warn: "iterable.length has been deprecated, use iterable.size or iterable.count(). This warning will become a silent error in a future version. get@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/immutable.js:4667:21\nremoveBreakpoints/onBreakpointsCleared<@chrome://damp/content/tests/debugger/debugger-helpers.js:248:15\nwaitForState/<@chrome://damp/content/tests/debugger/debugger-helpers.js:24:9\nwaitForState@chrome://damp/content/tests/debugger/debugger-helpers.js:20:10\nremoveBreakpoints@chrome://damp/content/tests/debugger/debugger-helpers.js:246:33\nasync*stepDebuggerAndLog@chrome://damp/content/tests/debugger/custom.js:90:11\nasync*module.exports@chrome://damp/content/tests/debugger/custom.js:30:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/inspector/custom.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/webconsole/custom.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/netmonitor/complicated.js:25:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/styleeditor/complicated.js:15:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/debugger/complicated.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/inspector/complicated.js:18:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\n"
09:54:25     INFO -  PID 7517 | console.warn: "iterable.length has been deprecated, use iterable.size or iterable.count(). This warning will become a silent error in a future version. get@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/immutable.js:4667:21\nremoveBreakpoints/onBreakpointsCleared<@chrome://damp/content/tests/debugger/debugger-helpers.js:248:15\nwaitForState/</unsubscribe<@chrome://damp/content/tests/debugger/debugger-helpers.js:32:11\ndispatch@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/redux.js:416:7\nwaitUntilService/</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/wait-service.js:71:20\npromiseMiddleware/</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/promise.js:31:14\nthunk/</</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/thunk.js:31:100\ndispatch@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/redux.js:755:18\npromiseMiddleware/</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/promise.js:41:5\nthunk/</</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/thunk.js:31:100\ndispatch@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/redux.js:755:18\nremoveBreakpoint/<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/breakpoints/index.js:79:12\nthunk/</</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/thunk.js:31:45\ndispatch@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/redux.js:755:18\nremoveBreakpoints/</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/breakpoints/index.js:208:49\nremoveBreakpoints/<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/breakpoints/index.js:208:24\nasync*thunk/</</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/thunk.js:31:45\nbindActionCreator/<@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/redux.js:644:12\nremoveBreakpoints@chrome://damp/content/tests/debugger/debugger-helpers.js:250:9\nasync*stepDebuggerAndLog@chrome://damp/content/tests/debugger/custom.js:90:11\nasync*module.exports@chrome://damp/content/tests/debugger/custom.js:30:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/inspector/custom.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/webconsole/custom.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/netmonitor/complicated.js:25:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/styleeditor/complicated.js:15:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/debugger/complicated.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/inspector/complicated.js:18:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\n"
09:54:25     INFO -  PID 7517 | Garbage collect
09:54:26     INFO -  PID 7517 | add breakpoint
09:54:26     INFO -  PID 7517 | Run function in content process: window.hitBreakpoint()
09:54:27     INFO -  PID 7517 | remove all breakpoints
09:54:27     INFO -  PID 7517 | console.warn: "iterable.length has been deprecated, use iterable.size or iterable.count(). This warning will become a silent error in a future version. get@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/immutable.js:4667:21\nremoveBreakpoints/onBreakpointsCleared<@chrome://damp/content/tests/debugger/debugger-helpers.js:248:15\nwaitForState/<@chrome://damp/content/tests/debugger/debugger-helpers.js:24:9\nwaitForState@chrome://damp/content/tests/debugger/debugger-helpers.js:20:10\nremoveBreakpoints@chrome://damp/content/tests/debugger/debugger-helpers.js:246:33\nasync*stepDebuggerAndLog@chrome://damp/content/tests/debugger/custom.js:90:11\nasync*module.exports@chrome://damp/content/tests/debugger/custom.js:30:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/inspector/custom.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/webconsole/custom.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/netmonitor/complicated.js:25:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/styleeditor/complicated.js:15:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/debugger/complicated.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/inspector/complicated.js:18:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\n"
09:54:27     INFO -  PID 7517 | console.warn: "iterable.length has been deprecated, use iterable.size or iterable.count(). This warning will become a silent error in a future version. get@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/immutable.js:4667:21\nremoveBreakpoints/onBreakpointsCleared<@chrome://damp/content/tests/debugger/debugger-helpers.js:248:15\nwaitForState/</unsubscribe<@chrome://damp/content/tests/debugger/debugger-helpers.js:32:11\ndispatch@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/redux.js:416:7\nwaitUntilService/</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/wait-service.js:71:20\npromiseMiddleware/</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/promise.js:31:14\nthunk/</</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/thunk.js:31:100\ndispatch@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/redux.js:755:18\npromiseMiddleware/</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/promise.js:41:5\nthunk/</</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/thunk.js:31:100\ndispatch@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/redux.js:755:18\nremoveBreakpoint/<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/breakpoints/index.js:79:12\nthunk/</</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/thunk.js:31:45\ndispatch@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/redux.js:755:18\nremoveBreakpoints/</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/breakpoints/index.js:208:49\nremoveBreakpoints/<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/breakpoints/index.js:208:24\nasync*thunk/</</<@resource://devtools/shared/base-loader.js -> resource://devtools/client/debugger/new/src/actions/utils/middleware/thunk.js:31:45\nbindActionCreator/<@resource://devtools/shared/base-loader.js -> resource://devtools/client/shared/vendor/redux.js:644:12\nremoveBreakpoints@chrome://damp/content/tests/debugger/debugger-helpers.js:250:9\nasync*stepDebuggerAndLog@chrome://damp/content/tests/debugger/custom.js:90:11\nasync*module.exports@chrome://damp/content/tests/debugger/custom.js:30:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/inspector/custom.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/webconsole/custom.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/netmonitor/complicated.js:25:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/styleeditor/complicated.js:15:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/debugger/complicated.js:23:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\ntestTeardown@chrome://damp/content/damp.js:214:5\nasync*exports.testTeardown@chrome://damp/content/tests/head.js:46:10\nmodule.exports@chrome://damp/content/tests/inspector/complicated.js:18:9\nasync*_runNextTest@chrome://damp/content/damp.js:256:19\n"
09:54:27     INFO -  PID 7517 | Garbage collect
09:54:27     INFO -  PID 7517 | Close toolbox on 'custom.jsdebugger'
09:54:27     INFO -  PID 7517 | Garbage collect
09:54:28     INFO -  PID 7517 | debugger/custom.js took 9081ms.
09:54:28     INFO -  PID 7517 | Loading test 'webconsole/bulklog.js'
09:54:28     INFO -  PID 7517 | Executing test 'webconsole/bulklog.js'
09:54:28     INFO -  PID 7517 | Garbage collect
09:54:29     INFO -  PID 7517 | webconsole/bulklog.js took 1427ms.
09:54:29     INFO -  PID 7517 | Loading test 'webconsole/autocomplete.js'
09:54:29     INFO -  PID 7517 | Executing test 'webconsole/autocomplete.js'
09:54:30    ERROR -  PID 7517 | TEST-UNEXPECTED-FAIL | damp | webconsole/autocomplete.js: TypeError: jsterm.complete is not a function
09:54:30     INFO -  PID 7517 | triggerAutocompletePopup@chrome://damp/content/tests/webconsole/autocomplete.js:59:3
09:54:30     INFO -  PID 7517 | async*showAndHideAutoCompletePopup@chrome://damp/content/tests/webconsole/autocomplete.js:50:9
09:54:30     INFO -  PID 7517 | async*module.exports@chrome://damp/content/tests/webconsole/autocomplete.js:40:11
09:54:30     INFO -  PID 7517 | async*_runNextTest@chrome://damp/content/damp.js:256:19
09:54:30     INFO -  PID 7517 | testTeardown@chrome://damp/content/damp.js:214:5
09:54:30     INFO -  PID 7517 | async*exports.testTeardown@chrome://damp/content/tests/head.js:46:10
09:54:30     INFO -  PID 7517 | module.exports@chrome://damp/content/tests/webconsole/bulklog.js:51:9
09:54:30     INFO -  PID 7517 | async*_runNextTest@chrome://damp/content/damp.js:256:19
09:54:30     INFO -  PID 7517 | testTeardown@chrome://damp/content/damp.js:214:5
09:54:30     INFO -  PID 7517 | async*exports.testTeardown@chrome://damp/content/tests/head.js:46:10
09:54:30     INFO -  PID 7517 | module.exports@chrome://damp/content/tests/debugger/custom.js:35:9
09:54:30     INFO -  PID 7517 | async*_runNextTest@chrome://damp/content/damp.js:256:19
09:54:30     INFO -  PID 7517 | testTeardown@chrome://damp/content/damp.js:214:5
09:54:30     INFO -  PID 7517 | async*exports.testTeardown@chrome://damp/content/tests/head.js:46:10
09:54:30     INFO -  PID 7517 | module.exports@chrome://damp/content/tests/inspector/custom.js:23:9
09:54:30     INFO -  PID 7517 | async*_runNextTest@chrome://damp/content/damp.js:256:19
09:54:30     INFO -  PID 7517 | testTeardown@chrome://damp/content/damp.js:214:5
09:54:30     INFO -  PID 7517 |
09:54:30     INFO -  Terminating psutil.Process(pid=7517, name='firefox', started='09:53:16')
09:54:30     INFO -  TEST-UNEXPECTED-ERROR | damp | unexpected error
09:54:30    ERROR -  Traceback (most recent call last):
09:54:30     INFO -    File "/home/cltbld/workspace/build/tests/talos/talos/run_tests.py", line 299, in run_tests
DAMP autocomplete test is failing.
I made a fix and pushed to TRY https://treeherder.mozilla.org/#/jobs?repo=try&revision=c823114fbadb12f59dc66353bde24ee1987a3f9a
We used to rely on different things to both display
the autocompletion text and accept an autocompletion.
This patches introduces new helper functions in order
to make the code more easy to reason about.
We also rollback our decision to show the popup when
there is only 1 item in the autocompletion list in
order to be more consistent with what Chrome does.

MozReview-Commit-ID: BZ98OiC7oEQ
The test was using jsterm.complete, which is no more,
so the test needed to be modified.
We can now simply call setInputValue and the autocompletion
will happen.
But, this also revealed a race in setInputValue: the text was
set by codeMirror before the cursor was actually moved. Which
means we were sending an erroneous autocompletion query to the
server.
We use codeMirror.operation to tell codeMirror to both set the
text and the cursor in a single operation.

Relies on D2827
Attachment #8999520 - Attachment is obsolete: true
Depends on: 1482826
Blocks: 1479758
No longer depends on: 1479758
Attachment #8999518 - Attachment is obsolete: true
Pushed by nchevobbe@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/9838d4b3680d
Refactor JsTerm autocompletion behavior; r=Honza.
Pushed by nchevobbe@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/65f3480a713b
Remove browser_jsterm_no_autocompletion_on_defined_variables.js; r=Honza.
Pushed by nchevobbe@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/6011582e3f69
Update tests to match the new jsterm behavior; r=Honza.
Pushed by nchevobbe@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/a28c7f13b6a6
Only run browser_jsterm_accessibility.js with old jsterm; r=Honza.
You need to log in before you can comment on or make changes to this bug.