[meta] convert uses of "defer" to "new Promise"

NEW
Unassigned

Status

enhancement
P5
normal
3 years ago
2 months ago

People

(Reporter: tromey, Unassigned, Mentored)

Tracking

(Depends on 2 bugs, Blocks 1 bug, {good-first-bug, meta})

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [good first bug][lang=js])

(Reporter)

Description

3 years ago
Many places in devtools use "defer" or "promise.defer".
However, this method didn't make it into the final Promise spec,
and it would be better to use standard facilities here,
namely "new Promise".

See this thread:
https://groups.google.com/forum/#!topic/mozilla.dev.developer-tools/IYw2U4TCNYU

In particular this message shows how to convert from defer to new Promise:
https://groups.google.com/d/msg/mozilla.dev.developer-tools/IYw2U4TCNYU/JwfhnfomAwAJ


This is a good first bug, but as there are many places using defer, it would
be best to proceed by filing a new bug for some area (say, one directory); then
do the conversion there.  When everything is converted, we could remove
devtools/shared/defer.js and close this bug.

There was some speculation in the thread that maybe some of the conversions can
be done in an automated way.  This would be worth looking into as well.
Severity: normal → enhancement
Component: Developer Tools: Framework → Developer Tools

Updated

3 years ago
Keywords: good-first-bug
Whiteboard: [good first bug][lang=js]

Comment 1

3 years ago
I'd like to take this up as my first bug. Doing a git grep I found 531 instances of affected code in the /devtools/clients dirs, is this correct? From my understanding of the bug, it seems as though the only change is: 

Old code: 

var promise = require("promise"); 
var x = promise.defer(); 

New code: 

var defer = require("devtools/shared/defer"); 
var x = defer(); 

Please correct me if I am wrong.
Flags: needinfo?(ttromey)
(In reply to Neil Lohana from comment #1)
> I'd like to take this up as my first bug. Doing a git grep I found 531
> instances of affected code in the /devtools/clients dirs, is this correct?
> From my understanding of the bug, it seems as though the only change is:

The change in "require" calls that you describe was already done.

The task now is to get rid of usages of the "defer" module altogether and convert them to the standard Promise syntax.

This email describes how to do it:
https://groups.google.com/d/msg/mozilla.dev.developer-tools/IYw2U4TCNYU/JwfhnfomAwAJ

Most cases should be easy, but there will be some tougher ones which will require a larger refactoring of the code.

As the task is pretty big, I would recommend to do it in a number of smaller patches, module by module.
Flags: needinfo?(ttromey)

Comment 3

3 years ago
I am planning on separating it by directory unless you have a better recommendation? I have made the change in the animation-inspector subdirectory and am going through the process of submitting a patch. I am not 100% certain if I am doing it correctly but I hope it will be clarified through the code review.
(Reporter)

Comment 4

3 years ago
I think doing it by directory is totally fine.
I recommend filing a new bug for each directory you plan to tackle,
and make the new bug block this one.
Then each patch can be addressed in its own bug.
This is a bit more bookkeeping but it's a bit more "normal" and also
it will keep things cleaner, avoid having to keep the bug open, etc.

Updated

3 years ago
Depends on: 1288947
Priority: -- → P3
[good first bug] whiteboard -> keyword mass change
Keywords: good-first-bug

Comment 6

3 years ago
Hello Tom,

I would like to work on this bug. I feel glad if you can mentor me in fixing it.

Thank You.
(Reporter)

Comment 7

3 years ago
(In reply to Wasim Thabraze from comment #6)

> I would like to work on this bug. I feel glad if you can mentor me in fixing
> it.
> 
> Thank You.

Sure!
The first thing to do is to build firefox.  The current best way is probably an
artifact build: https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Artifact_builds

Once you've built it you can try to convert some files according to the plan in this bug.
The best way would be to pick some specific devtools module to convert; file a bug for
just this module; and attach the resulting patch to that bug.  You can look at the one
dependent bug of this bug to see what that would look like.

Comment 8

3 years ago
Hey,
I'm new to Open Source, etc. I already built Firefox.
This would be my first bug. I hope you can assign it to me.
(Reporter)

Comment 9

3 years ago
(In reply to dablitz from comment #8)
> Hey,
> I'm new to Open Source, etc. I already built Firefox.
> This would be my first bug. I hope you can assign it to me.

Hi!
I think the thing to do is mentioned in comment #3 and comment #4 --
that is, since the problem is pretty large, it should be tackled in pieces.
To do that you would find a decent piece, say some reasonable part of devtools/,
make a bug for that, and then do the work there.  See the one existing dependency
of this bug for an example.
The problem is that in most cases the resolve() call is separated from the defer() initialization - often it is in a different function that would be called sometime in the future. This is not easily convertible to the Promise syntax as you need to call the resolve()/reject() functions in the same block of code.
A solution I could come up with is to keep the references to the resolve()/reject() functions by pulling them out of the Promise() block. So one way to quickly replace all defer() and promise.defer() occurences would be to substitute this code instead:
new function() { this.promise = new Promise((resolve, reject) => { this.resolve = resolve; this.reject = reject; } ) }
This produces an object { promise: Promise, resolve: function, reject: function } that follows the same syntax as the original defer() so no more syntax changes would be required. If all we need is to get rid of the custom "defer" or "promise" library, this could work. 
I haven't run any tests yet because I wanted to get some feedback first...
Flags: needinfo?(ttromey)
(Reporter)

Comment 11

3 years ago
(In reply to Dalimil Hajek [:dalimil] from comment #10)
> The problem is that in most cases the resolve() call is separated from the
> defer() initialization - often it is in a different function that would be
> called sometime in the future.

Yeah, it seems possible that this bug is overly optimistic about the chances of
doing a total conversion.  Concrete examples of difficult cases in the code base
(say, DXR links), would be helpful for discussion.

> A solution I could come up with is to keep the references to the
> resolve()/reject() functions by pulling them out of the Promise() block.

I think that if it comes to this, we might as well just keep defer() (not promise.defer,
but the one in devtools/shared/defer.js, as that works with a standard Promise).
Flags: needinfo?(ttromey)

Comment 12

2 years ago
Hi I am new to Bugzilla community and I would like to contribute to this as my good first bug.
My firefox is already built in the system.

Thank you,
Flags: needinfo?(ttromey)
(Reporter)

Comment 13

2 years ago
(In reply to hanbin.chang from comment #12)
> Hi I am new to Bugzilla community and I would like to contribute to this as
> my good first bug.
> My firefox is already built in the system.

I think the best thing to do is to pick some directory you want to convert
(you can ask if you need suggestions; I suggest avoiding at least debugger and
console); then file a new bug for that directory (make the bug block this one).
Then I can assign that bug to you (just NI me) and you can do the work there.
See bug 1288947 for an example of what this would look like.
Thanks!
Flags: needinfo?(ttromey)

Comment 14

2 years ago
Hi Tom,

I would like to work on the directory /devtools/client/webide
I am new to community and I am little unclear how to file a new bug.
Could you assist?
Thank you,
Flags: needinfo?(ttromey)

Comment 15

2 years ago
Hey Tom,

I filed a new bug : https://bugzilla.mozilla.org/show_bug.cgi?id=1346009
Let me know if there's any issue, so could you assign this bug to me?

Thank you,
(Reporter)

Comment 16

2 years ago
Thanks, and sorry I didn't get to this earlier today.
The only real change I made there was to put it into the correct component.
Flags: needinfo?(ttromey)
(Reporter)

Updated

2 years ago
Depends on: 1346009

Comment 17

2 years ago
I would like to work upon this bug.  Can help me how should I proceed
(Reporter)

Comment 18

2 years ago
(In reply to Subhdeep Saha from comment #17)
> I would like to work upon this bug.  Can help me how should I proceed

Hi!  Read comment#13 to see what to do; but also please avoiding picking
webide, because that's already being worked on (see comment#14).
Thanks for your interest, and please feel free to needinfo me if you
need anything.

Comment 19

2 years ago
Hi Tom,
 i would like work upon /devtools/client/scratchpad/scratchpad.js
(Reporter)

Comment 20

2 years ago
(In reply to Subhdeep Saha from comment #19)
> Hi Tom,
>  i would like work upon /devtools/client/scratchpad/scratchpad.js

Ok.  I recommend trying to convert the whole directory, perhaps; but
either way is actually ok.  The first step is to file a new bug stating
what you're going to do.  Please CC me on it.  Best would be to make
it block this bug, but I can do that if you don't.

Comment 21

2 years ago
so are u creating the bug and assigning me?

Comment 22

2 years ago
Hi Tom,

I have created the bug for the above https://bugzilla.mozilla.org/show_bug.cgi?id=1347894
Flags: needinfo?(ttromey)
(Reporter)

Updated

2 years ago
Depends on: 1347894
(Reporter)

Comment 23

2 years ago
Commented there.
Flags: needinfo?(ttromey)

Comment 24

2 years ago
Hi Tom! I'd like to try to tackle this in the /client/netmonitor directory. I've opened bug 1350648 for this.

Updated

2 years ago
Depends on: 1350648
Depends on: 1354883
Depends on: 1354884
Depends on: 1354890

Comment 25

2 years ago
Hi Tom,
I would like to work on this bug.Could you suggest a module i can pick which is not assigned to anybody yet?
Flags: needinfo?(ttromey)

Comment 26

2 years ago
Hi Tom,

Hi Tom! I'd like to try to tackle this in the /client/responsivedesign directory. I've opened bug 1355473 for this. Can you please assign it to me?
(Reporter)

Updated

2 years ago
Depends on: 1355473
(Reporter)

Comment 27

2 years ago
(In reply to Utsav Saha from comment #25)

> I would like to work on this bug.Could you suggest a module i can pick which
> is not assigned to anybody yet?

How about devtools/client/styleeditor?

(In reply to Anirban Biswas from comment #26)

> Hi Tom! I'd like to try to tackle this in the /client/responsivedesign
> directory. I've opened bug 1355473 for this. Can you please assign it to me?

Done, and thank you!
Flags: needinfo?(ttromey)

Comment 28

2 years ago
(In reply to Tom Tromey :tromey from comment #27)
> (In reply to Utsav Saha from comment #25)
> 
> > I would like to work on this bug.Could you suggest a module i can pick which
> > is not assigned to anybody yet?
> 
> How about devtools/client/styleeditor?
> 


Hi Tom,I have created a bug 1355523 for styleeditor.could you assign it to me and mark the same as a dependent bug.
Thanks in advance.
Flags: needinfo?(ttromey)

Comment 29

2 years ago
Hello Tom. I wanted to contribute to client/sourceeditor and created a bug 1355696. Could you please assign this bug to me?
(Reporter)

Updated

2 years ago
Depends on: 1355523
(Reporter)

Updated

2 years ago
Depends on: 1355696
(Reporter)

Comment 30

2 years ago
Done.
Flags: needinfo?(ttromey)
Depends on: 1366529
Depends on: 1366531
Depends on: 1366532
Depends on: 1366533
Depends on: 1366534
Depends on: 1366535

Comment 31

2 years ago
Hi.
I am a new contributor, and I would also like to work on a few of these.
I will file a new bug folder by folder as suggested.
I just thought I would post my result of grep-ing for defer in devtools/, excluding comments, striping down to file names, and making a unique list.
Note: I have already removed from this list any folders that have their own bug filed, as liked to by "Depends on ######" from this bug.

$ grep -R "defer" ./mozilla-central/devtools | grep -v "./shared/defer.js" | egrep -v ":\s*\*" | egrep -v ":\s*//*" | sed s/:.*// | uniq 

./client/debugger/content/actions/sources.js
./client/debugger/debugger-commands.js
./client/debugger/debugger-controller.js
./client/debugger/debugger-view.js
./client/debugger/new/debugger.js
./client/debugger/new/integration-tests.js
./client/debugger/new/parser-worker.js
./client/debugger/new/pretty-print-worker.js
./client/debugger/new/test/mochitest/browser_dbg-chrome-debugging.js
./client/debugger/test/mochitest/browser_dbg_addon-console.js
./client/debugger/test/mochitest/browser_dbg_break-on-dom-event-01.js
./client/debugger/test/mochitest/browser_dbg_break-on-dom-event-02.js
./client/debugger/test/mochitest/browser_dbg_breakpoints-break-on-last-line-of-script-on-reload.js
./client/debugger/test/mochitest/browser_dbg_breakpoints-new-script.js
./client/debugger/test/mochitest/browser_dbg_breakpoints-pane.js
./client/debugger/test/mochitest/browser_dbg_chrome-debugging.js
./client/debugger/test/mochitest/browser_dbg_clean-exit-window.js
./client/debugger/test/mochitest/browser_dbg_cmd-break.js
./client/debugger/test/mochitest/browser_dbg_cmd-dbg.js
./client/debugger/test/mochitest/browser_dbg_debugger-statement.js
./client/debugger/test/mochitest/browser_dbg_event-listeners-01.js
./client/debugger/test/mochitest/browser_dbg_event-listeners-02.js
./client/debugger/test/mochitest/browser_dbg_event-listeners-03.js
./client/debugger/test/mochitest/browser_dbg_jump-to-function-definition.js
./client/debugger/test/mochitest/browser_dbg_listtabs-01.js
./client/debugger/test/mochitest/browser_dbg_listtabs-02.js
./client/debugger/test/mochitest/browser_dbg_multiple-windows.js
./client/debugger/test/mochitest/browser_dbg_navigation.js
./client/debugger/test/mochitest/browser_dbg_parser-11.js
./client/debugger/test/mochitest/browser_dbg_pause-exceptions-01.js
./client/debugger/test/mochitest/browser_dbg_pause-exceptions-02.js
./client/debugger/test/mochitest/browser_dbg_pretty-print-04.js
./client/debugger/test/mochitest/browser_dbg_scripts-switching-01.js
./client/debugger/test/mochitest/browser_dbg_scripts-switching-02.js
./client/debugger/test/mochitest/browser_dbg_search-global-01.js
./client/debugger/test/mochitest/browser_dbg_search-global-02.js
./client/debugger/test/mochitest/browser_dbg_search-global-03.js
./client/debugger/test/mochitest/browser_dbg_search-global-04.js
./client/debugger/test/mochitest/browser_dbg_search-global-05.js
./client/debugger/test/mochitest/browser_dbg_search-global-06.js
./client/debugger/test/mochitest/browser_dbg_search-symbols.js
./client/debugger/test/mochitest/browser_dbg_searchbox-help-popup-02.js
./client/debugger/test/mochitest/browser_dbg_source-maps-01.js
./client/debugger/test/mochitest/browser_dbg_source-maps-02.js
./client/debugger/test/mochitest/browser_dbg_source-maps-03.js
./client/debugger/test/mochitest/browser_dbg_source-maps-04.js
./client/debugger/test/mochitest/browser_dbg_stack-05.js
./client/debugger/test/mochitest/browser_dbg_step-out.js
./client/debugger/test/mochitest/browser_dbg_tabactor-01.js
./client/debugger/test/mochitest/browser_dbg_tabactor-02.js
./client/debugger/test/mochitest/browser_dbg_variables-view-accessibility.js
./client/debugger/test/mochitest/browser_dbg_variables-view-filter-01.js
./client/debugger/test/mochitest/browser_dbg_variables-view-filter-02.js
./client/debugger/test/mochitest/browser_dbg_variables-view-filter-03.js
./client/debugger/test/mochitest/browser_dbg_variables-view-filter-04.js
./client/debugger/test/mochitest/browser_dbg_variables-view-filter-05.js
./client/debugger/test/mochitest/browser_dbg_variables-view-frame-parameters-01.js
./client/debugger/test/mochitest/browser_dbg_variables-view-frame-parameters-02.js
./client/debugger/test/mochitest/browser_dbg_variables-view-frame-parameters-03.js
./client/debugger/test/mochitest/browser_dbg_variables-view-frame-with.js
./client/debugger/test/mochitest/browser_dbg_variables-view-large-array-buffer.js
./client/debugger/test/mochitest/browser_dbg_variables-view-override-02.js
./client/debugger/test/mochitest/browser_dbg_variables-view-popup-16.js
./client/debugger/test/mochitest/browser_dbg_variables-view-reexpand-01.js
./client/debugger/test/mochitest/browser_dbg_variables-view-reexpand-02.js
./client/debugger/test/mochitest/browser_dbg_variables-view-webidl.js
./client/debugger/test/mochitest/browser_dbg_watch-expressions-02.js
./client/debugger/test/mochitest/head.js
./client/memory/memory.xhtml
./client/memory/test/unit/head.js
./client/scratchpad/scratchpad-panel.js
./client/scratchpad/scratchpad.js
./client/scratchpad/test/browser_scratchpad_reload_and_run.js
./client/scratchpad/test/head.js
./client/shared/AppCacheUtils.jsm
./client/shared/browser-loader.js
./client/shared/components/reps/reps.js
./client/shared/components/test/mochitest/head.js
./client/shared/developer-toolbar.js
./client/shared/doorhanger.js
./client/shared/frame-script-utils.js
./client/shared/getjson.js
./client/shared/poller.js
./client/shared/redux/middleware/promise.js
./client/shared/test/browser_inplace-editor-01.js
./client/shared/test/browser_inplace-editor-02.js
./client/shared/test/browser_mdn-docs-01.js
./client/shared/test/browser_treeWidget_keyboard_interaction.js
./client/shared/test/browser_treeWidget_mouse_interaction.js
./client/shared/test/test-actor-registry.js
./client/shared/test/test-actor.js
./client/shared/vendor/jszip.js
./client/shared/vendor/lodash.js
./client/shared/vendor/react-dev.js
./client/shared/vendor/react.js
./client/shared/widgets/FlameGraph.js
./client/shared/widgets/Graphs.js
./client/shared/widgets/MdnDocsWidget.js
./client/shared/widgets/VariablesView.jsm
./client/shared/widgets/VariablesViewController.jsm
./client/shared/widgets/tooltip/SwatchCubicBezierTooltip.js
./client/shared/widgets/tooltip/Tooltip.js
./client/webconsole/console-output.js
./client/webconsole/hudservice.js
./client/webconsole/jsterm.js
./client/webconsole/net/data-provider.js
./client/webconsole/new-webconsole.js
./client/webconsole/panel.js
./client/webconsole/test/browser_bug_638949_copy_link_location.js
./client/webconsole/test/browser_bug_871156_ctrlw_close_tab.js
./client/webconsole/test/browser_console_addonsdk_loader_exception.js
./client/webconsole/test/browser_console_consolejsm_output.js
./client/webconsole/test/browser_console_copy_command.js
./client/webconsole/test/browser_console_filters.js
./client/webconsole/test/browser_console_hide_jsterm_when_devtools_chrome_enabled_false.js
./client/webconsole/test/browser_console_optimized_out_vars.js
./client/webconsole/test/browser_console_server_logging.js
./client/webconsole/test/browser_console_variables_view_dom_nodes.js
./client/webconsole/test/browser_console_variables_view_dont_sort_non_sortable_classes_properties.js
./client/webconsole/test/browser_eval_in_debugger_stackframe2.js
./client/webconsole/test/browser_netmonitor_shows_reqs_in_webconsole.js
./client/webconsole/test/browser_output_longstring_expand.js
./client/webconsole/test/browser_result_format_as_string.js
./client/webconsole/test/browser_warn_user_about_replaced_api.js
./client/webconsole/test/browser_webconsole_allow_mixedcontent_securityerrors.js
./client/webconsole/test/browser_webconsole_autocomplete-properties-with-non-alphanumeric-names.js
./client/webconsole/test/browser_webconsole_autocomplete_and_selfxss.js
./client/webconsole/test/browser_webconsole_block_mixedcontent_securityerrors.js
./client/webconsole/test/browser_webconsole_bug_580001_closing_after_completion.js
./client/webconsole/test/browser_webconsole_bug_585991_autocomplete_keys.js
./client/webconsole/test/browser_webconsole_bug_585991_autocomplete_popup.js
./client/webconsole/test/browser_webconsole_bug_587617_output_copy.js
./client/webconsole/test/browser_webconsole_bug_588730_text_node_insertion.js
./client/webconsole/test/browser_webconsole_bug_597460_filter_scroll.js
./client/webconsole/test/browser_webconsole_bug_599725_response_headers.js
./client/webconsole/test/browser_webconsole_bug_600183_charset.js
./client/webconsole/test/browser_webconsole_bug_613642_maintain_scroll.js
./client/webconsole/test/browser_webconsole_bug_621644_jsterm_dollar.js
./client/webconsole/test/browser_webconsole_bug_622303_persistent_filters.js
./client/webconsole/test/browser_webconsole_bug_630733_response_redirect_headers.js
./client/webconsole/test/browser_webconsole_bug_651501_document_body_autocomplete.js
./client/webconsole/test/browser_webconsole_bug_660806_history_nav.js
./client/webconsole/test/browser_webconsole_bug_764572_output_open_url.js
./client/webconsole/test/browser_webconsole_bug_782653_CSS_links_in_Style_Editor.js
./client/webconsole/test/browser_webconsole_bug_837351_securityerrors.js
./client/webconsole/test/browser_webconsole_chrome.js
./client/webconsole/test/browser_webconsole_closure_inspection.js
./client/webconsole/test/browser_webconsole_dont_navigate_on_doubleclick.js
./client/webconsole/test/browser_webconsole_filter_buttons_contextmenu.js
./client/webconsole/test/browser_webconsole_for_of.js
./client/webconsole/test/browser_webconsole_jsterm.js
./client/webconsole/test/browser_webconsole_netlogging_reset_filter.js
./client/webconsole/test/browser_webconsole_notifications.js
./client/webconsole/test/browser_webconsole_output_dom_elements_04.js
./client/webconsole/test/browser_webconsole_scratchpad_panel_link.js
./client/webconsole/test/browser_webconsole_shows_reqs_in_netmonitor.js
./client/webconsole/test/browser_webconsole_split.js
./client/webconsole/test/browser_webconsole_split_escape_key.js
./client/webconsole/test/head.js
./client/webconsole/webconsole-connection-proxy.js
./client/webconsole/webconsole.js
./client/webconsole/webpack.config.js
./server/actors/accessibility.js
./server/actors/canvas.js
./server/actors/device.js
./server/actors/inspector.js
./server/actors/storage.js
./server/actors/stylesheets.js
./server/actors/webbrowser.js
./server/actors/webgl.js
./server/main.js
./server/tests/browser/browser_perf-realtime-markers.js
./server/tests/browser/head.js
./server/tests/mochitest/inspector-helpers.js
./server/tests/mochitest/test_inspector-dead-nodes.html
./server/tests/mochitest/test_unsafeDereference.html
./server/tests/unit/head_dbg.js
./server/tests/unit/test_blackboxing-06.js
./server/tests/unit/test_client_request.js
./server/tests/unit/test_nesting-01.js
./server/tests/unit/test_nesting-02.js
./server/tests/unit/test_protocol_async.js
./server/tests/unit/test_protocol_longstring.js
./server/tests/unit/test_protocol_simple.js
./server/tests/unit/test_sourcemaps-10.js
./server/tests/unit/test_sourcemaps-11.js
./server/worker.js
./shared/DevToolsUtils.js
./shared/acorn/acorn.js
./shared/apps/app-actor-front.js
./shared/client/main.js
./shared/deprecated-sync-thenables.js
./shared/discovery/tests/unit/test_discovery.js
./shared/fronts/device.js
./shared/fronts/inspector.js
./shared/fronts/styleeditor.js
./shared/gcli/commands/appcache.js
./shared/gcli/commands/jsb.js
./shared/gcli/commands/screenshot.js
./shared/gcli/source/docs/writing-commands.md
./shared/gcli/source/lib/gcli/cli.js
./shared/moz.build
./shared/old-event-emitter.js
./shared/protocol.js
./shared/qrcode/index.js
./shared/security/auth.js
./shared/security/cert.js
./shared/security/socket.js
./shared/security/tests/unit/head_dbg.js
./shared/security/tests/unit/test_encryption.js
./shared/security/tests/unit/test_oob_cert_auth.js
./shared/system.js
./shared/task.js
./shared/tests/unit/test_defer.js
./shared/tests/unit/test_executeSoon.js
./shared/tests/unit/xpcshell.ini
./shared/touch/simulator.js
./shared/transport/packets.js
./shared/transport/stream-utils.js
./shared/transport/tests/unit/head_dbg.js
./shared/transport/tests/unit/test_bulk_error.js
./shared/transport/tests/unit/test_client_server_bulk.js
./shared/transport/tests/unit/test_dbgsocket.js
./shared/transport/tests/unit/test_dbgsocket_connection_drop.js
./shared/transport/tests/unit/test_queue.js
./shared/transport/tests/unit/test_transport_bulk.js
./shared/transport/transport.js
./shared/webconsole/test/unit/test_throttle.js

Updated

2 years ago
Depends on: 1398089
(In reply to tera_1225 from comment #31)
> Hi.
> I am a new contributor, and I would also like to work on a few of these.
> I will file a new bug folder by folder as suggested.
> I just thought I would post my result of grep-ing for defer in devtools/,
> excluding comments, striping down to file names, and making a unique list.
> Note: I have already removed from this list any folders that have their own
> bug filed, as liked to by "Depends on ######" from this bug.
> 
> $ grep -R "defer" ./mozilla-central/devtools | grep -v "./shared/defer.js" |
> egrep -v ":\s*\*" | egrep -v ":\s*//*" | sed s/:.*// | uniq 

Thanks, that helps! It looks like many of these instances are in the old debugger frontend (anything not in debugger/new/). We are shipping the new debugger frontend in version 57 so that code will be removed sometime in the future, and even now isn't as high a priority to convert to `new Promise` as the other usages here.  We are in a similar situation in `client/webconsole/test` as well.  So I'd say prioritize other instances higher than debugger/ and console/.

Comment 33

2 years ago
Thanks Brian, that's good to know. I had also been told that the debugger code was about to change in the #debugger slack, but I was going to start, obviously, in alphabetical order, with the debugger, so good job you were around!
Will edit bug 1398089 that I created for client/debugger/ to reflect the fact that only client/debugger/new is the place to work on that one.

Updated

2 years ago
Depends on: 1398329
(Reporter)

Comment 34

2 years ago
It should also be removed from devtools-core; see https://github.com/devtools-html/devtools-core/issues/715
Depends on: 1406915
No longer depends on: 1406915

Comment 35

2 years ago
Hi Tom, I created this bug and submitted a patch https://bugzilla.mozilla.org/show_bug.cgi?id=1408164
(Reporter)

Updated

2 years ago
Depends on: 1408164

Updated

a year ago
Depends on: 1423201

Comment 36

a year ago
Hello Tom, I would like to take this up as my first bug for the directory server/tests/mochitest. Created this bug https://bugzilla.mozilla.org/show_bug.cgi?id=1423201 according to instructions in this thread. Please assign it to me.
Can a bug be assigned to me? Im a student at Seneca College, learning how to fix bugs in open source projects and I think this is a good starting bug.
(Reporter)

Comment 38

a year ago
(In reply to Avedis Zeitounilian from comment #37)
> Can a bug be assigned to me? Im a student at Seneca College, learning how to
> fix bugs in open source projects and I think this is a good starting bug.

Sure, what you should do is outlined in comment #13.

Updated

a year ago
Depends on: 1428516

Comment 39

a year ago
Hello Sir,I would like to work on this bug,I have downloaded and built firefox in my ubuntu.If you could provide some insight about this bug,I would to love work on it
Hello nikhil,

You can pick one of the non-resolved "Depends on" bug so you only have to work on a given folder instead of the whole devtools.
Would you be interested taking Bug 1366529 ?
Flags: needinfo?(nikhilkumar.c16)
Depends on: 1449635
Keywords: meta
Priority: P3 → P5
Summary: convert uses of "defer" to "new Promise" → [meta] convert uses of "defer" to "new Promise"

Comment 41

a year ago
(In reply to Nicolas Chevobbe [:nchevobbe] from comment #40)
> Hello nikhil,
> 
> You can pick one of the non-resolved "Depends on" bug so you only have to
> work on a given folder instead of the whole devtools.
> Would you be interested taking Bug 1366529 ?

Yes sir, I would love to work on it
Flags: needinfo?(nikhilkumar.c16)

Comment 42

11 months ago
Can I work on this bug? I'm a student at WOU and taking an Open Source class. It looks like there are already people working on it, but it's not entirely clear. Is there work for more than one person?
Hello Michael,

This bug is what we call a meta, which means it holds all the smaller bugs we need to fix to remove all defer usage in the codebase.
If you want, you can grab Bug 1366532.
I encourage you to have a look at http://docs.firefox-dev.tools/getting-started/ to setup the firefox dev environment (chose artifact builds when asked, it's much faster).
If you have any question, you can come and chat in our slack https://devtools-html-slack.herokuapp.com/.
Hi, I'd like to work on one of the sub-bugs here (I'm eyeing https://bugzilla.mozilla.org/show_bug.cgi?id=1366534). Could someone assign me to and mentor for that bug or otherwise volunteer to review the patch? Thank you :)

Updated

11 months ago
Product: Firefox → DevTools
Depends on: 1471812

Updated

8 months ago
Depends on: 1482972

Comment 45

7 months ago
Hello everyone!I would like to work on some of the sub-bugs here, can someone please assign me a sub-bug? Thanks in advance!
(In reply to Preeti[:preeti] from comment #45)
> Hello everyone!I would like to work on some of the sub-bugs here, can
> someone please assign me a sub-bug? Thanks in advance!

Hello Preeti !
Would you want to work on Bug 1366529 ?
Let me know if it's okay for you, and I'll assign the bug to you

Comment 47

7 months ago
> Hello Preeti !
> Would you want to work on Bug 1366529 ?
> Let me know if it's okay for you, and I'll assign the bug to you

Yes I would like to work on this bug. However I am a beginner in JavaScript, so please do excuse my queries!

Comment 48

7 months ago
(In reply to Nicolas Chevobbe [:nchevobbe] from comment #46)
> (In reply to Preeti[:preeti] from comment #45)
> > Hello everyone!I would like to work on some of the sub-bugs here, can
> > someone please assign me a sub-bug? Thanks in advance!
> 
> Hello Preeti !
> Would you want to work on Bug 1366529 ?
> Let me know if it's okay for you, and I'll assign the bug to you

Sorry, I guess I was late in replying, so could someone please assign another bug?
(In reply to Preeti[:preeti] from comment #48)
> (In reply to Nicolas Chevobbe [:nchevobbe] from comment #46)
> > (In reply to Preeti[:preeti] from comment #45)
> > > Hello everyone!I would like to work on some of the sub-bugs here, can
> > > someone please assign me a sub-bug? Thanks in advance!
> > 
> > Hello Preeti !
> > Would you want to work on Bug 1366529 ?
> > Let me know if it's okay for you, and I'll assign the bug to you
> 
> Sorry, I guess I was late in replying, so could someone please assign
> another bug?

Hello Preeti, I assigned Bug 1366534 to you :)

Comment 50

7 months ago
Hi! I would like to work on some of the sub-bugs here, can someone please help me with that? Thanks!
Hi ! I am a beginner . I would like to work on this bug . Can you tell me how to work on this?
Flags: needinfo?(ttromey)
Hello there, I think all the bugs are taken now.
You can check other good-first-bug
Flags: needinfo?(ttromey)

Updated

2 months ago
Depends on: 1529497
Depends on: 1530275

Comment 53

2 months ago

Hey
I would like to work on it, as I have refactored some part of code like this earlier as well.
Can you please assign it to me and help me to find the part of the code which needs to be fixed?

Flags: needinfo?(nchevobbe)

Hello Paarmita,

This bug is what we call a META bug, meaning it's used to manage other, smaller bugs.
I'll try to assign you one of this smaller bug :)

Flags: needinfo?(nchevobbe)
Depends on: 1532222

Comment 55

2 months ago

Sure!

Comment 56

2 months ago

Hello Nicolas,

Could you please create the simular smaller bug and assign me, like you did for Paarmita?

Depends on: 1533657
Depends on: 1533658
You need to log in before you can comment on or make changes to this bug.