Closed
Bug 1243452
Opened 9 years ago
Closed 8 years ago
Make DebuggerClient.close return a promise
Categories
(DevTools :: Framework, defect)
DevTools
Framework
Tracking
(firefox51 fixed)
RESOLVED
FIXED
Firefox 51
Tracking | Status | |
---|---|---|
firefox51 | --- | fixed |
People
(Reporter: ochameau, Assigned: ochameau)
References
Details
Attachments
(1 file, 2 obsolete files)
Sibling of bug 1239276, but instead of connect, targets close function. I think it will be the last one to convert.
Updated•9 years ago
|
Assignee: nobody → ajkerrigan
Status: NEW → ASSIGNED
Comment 1•9 years ago
|
||
Since this was a sibling of Bug 1243452, I've tried to follow the same approach from that bug. The primary update is in devtools/shared/client/main.js: - Return a promise from DebuggerClient.close() - Document the promise return and mark the callback parameter as deprecated From there, I did some searches to find and update all calls to the close() method which passed a callback parameter.
Attachment #8716737 -
Flags: review?(jryans)
Comment on attachment 8716737 [details] [diff] [review] Make DebuggerClient.close return a promise Review of attachment 8716737 [details] [diff] [review]: ----------------------------------------------------------------- Great, thanks for working on this! I believe you found all the right cases to clean up. ::: devtools/shared/client/main.js @@ +368,5 @@ > * @param aOnClosed function > * If specified, will be called when the debugging connection > + * has been closed. This parameter is deprecated - please use > + * the returned Promise. > + * Nit: We typically don't use a blank line between @param and @return @@ +395,5 @@ > // there is no need to detach client > // as we won't be able to send any message. > if (this._closed) { > cleanup(); > + resolve(); We should `return deferred.promise;` after this, so the rest of the method is skipped as before.
Attachment #8716737 -
Flags: review?(jryans) → review+
Comment 3•9 years ago
|
||
Good call, thanks for the review. Those changes should be in now.
Attachment #8716937 -
Flags: review?(jryans)
Comment 4•9 years ago
|
||
Comment on attachment 8716937 [details] [diff] [review] Make DebuggerClient.close return a promise Submitted this for re-review unnecessarily.
Attachment #8716937 -
Flags: review?(jryans)
Updated•9 years ago
|
Attachment #8716737 -
Attachment is obsolete: true
Comment 5•9 years ago
|
||
Comment on attachment 8716937 [details] [diff] [review] Make DebuggerClient.close return a promise Fixed items from :jryans conditional review+
Attachment #8716937 -
Flags: review+
Comment 8•8 years ago
|
||
My changes passed review a while back, but try runs kept showing too many instances of intermittent failures. I suspect the problem(s) are related to promise handling in tests that use DebuggerClient.close, but despite a bunch of test refactoring I wasn't able to get try runs to be green at a level I was comfortable with. I don't have much time available lately to work on issues like this, and I think that's going to be the way for the foreseeable future. I'm leaving this update and unassigning in case someone else wants to pick it up before I get back to it.
Assignee: ajkerrigan → nobody
Status: ASSIGNED → NEW
Assignee | ||
Comment 9•8 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=c60bf0e58c04
Comment hidden (mozreview-request) |
Assignee | ||
Comment 11•8 years ago
|
||
A bunch of code already expect it to return a Promise :/ https://dxr.mozilla.org/mozilla-central/search?q=yield+client.close&redirect=false Also, in my patch, I'm also converting all callsites to use the promise form, while keeping the callback argument. I did that while thinking about addons, but may be that's useless?
Attachment #8716937 -
Attachment is obsolete: true
Comment 12•8 years ago
|
||
mozreview-review |
Comment on attachment 8786970 [details] Bug 1243452 - Make DebuggerClient.close return a Promise. https://reviewboard.mozilla.org/r/75812/#review73784 Looks good, thanks for doing this cleanup! ::: devtools/server/tests/browser/head.js:90 (Diff revision 1) > /** > * Close a debugger client's connection. > * @param {DebuggerClient} > * @return {Promise} Resolves when the connection is closed. > */ > function closeDebuggerClient(client) { Seems like this can be inlined. ::: devtools/shared/client/main.js:353 (Diff revision 1) > this._transport.ready(); > return deferred.promise; > }, > > /** > * Shut down communication with the debugging server. Update comment to note it returns a promise.
Attachment #8786970 -
Flags: review?(jryans) → review+
Comment hidden (mozreview-request) |
(In reply to Alexandre Poirot [:ochameau] from comment #11) > A bunch of code already expect it to return a Promise :/ > https://dxr.mozilla.org/mozilla-central/search?q=yield+client. > close&redirect=false > > Also, in my patch, I'm also converting all callsites to use the promise form, > while keeping the callback argument. I did that while thinking about addons, > but may be that's useless? Yes, I think you should preserve the callback argument for add-ons. That seems best to me.
Comment 15•8 years ago
|
||
Pushed by apoirot@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/52851295b34f Make DebuggerClient.close return a Promise. r=jryans
Comment 16•8 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/52851295b34f
Status: NEW → RESOLVED
Closed: 8 years ago
status-firefox51:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → Firefox 51
Updated•6 years ago
|
Product: Firefox → DevTools
You need to log in
before you can comment on or make changes to this bug.
Description
•