Closed Bug 1349509 Opened 7 years ago Closed 7 years ago

DevTools addon should reload from source/addon on addon install

Categories

(DevTools :: General, defect)

defect
Not set
normal

Tracking

(firefox55 fixed)

RESOLVED FIXED
Firefox 55
Tracking Status
firefox55 --- fixed

People

(Reporter: ochameau, Unassigned)

References

Details

Attachments

(1 file)

For now, the addon only loads addon resources when you press the Ctrl+Alt+R.
But in a world where Firefox ships without devtools, the addon should ensure setting up devtools on install.
It also sounds correct today, to update the devtools as soon as the addon is installed.
Summary: Devtools addon should reload devtools from source/addon on addon install → DevTools addon should reload from source/addon on addon install
Comment on attachment 8850033 [details]
Bug 1349509 - Reload devtools when installing the addon.

https://reviewboard.mozilla.org/r/122780/#review125152

Seems reasonable to me!

On install via about:debugging, I got several errors:

```
1490226463904	addons.manager	WARN	AddonListener threw exception when calling onInstalled: TypeError: defer is not a function (resource://devtools/shared/deprecated-sync-thenables.js:38:22) JS Stack trace: then@deprecated-sync-thenables.js:38:22 < updateAddonsList@panel.js:71:5 < onInstalled@panel.js:93:5 < callAddonListeners@AddonManager.jsm:1693:11 < callAddonListeners@AddonManager.jsm:3160:5 < this.XPIProvider.installAddonFromLocation<@XPIProvider.jsm:4141:5 < TaskImpl_run@Task.jsm:319:42 < process@Promise-backend.js:922:23 < walkerLoop@Promise-backend.js:806:7 < scheduleWalkerLoop/<@Promise-backend.js:742:11

"notify event 'closed' threw an exception: TypeError: isPromise is not a function
Stack: resolve@resource://devtools/shared/deprecated-sync-thenables.js:71:18
l@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/client/main.js:68:7
eventSource/proto.emit@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/client/main.js:130:9
onClosed@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/client/main.js:1098:5
close@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/transport/transport.js:668:11
close@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/transport/transport.js:664:9
close@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/transport/transport.js:664:9
cleanup@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/client/main.js:371:7
detachClients@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/client/main.js:395:9
close@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/client/main.js:404:5
destroy@chrome://devtools/content/aboutdebugging/initializer.js:56:5
@chrome://devtools/content/aboutdebugging/initializer.js:66:3
Line: 71, column: 18"  ThreadSafeDevToolsUtils.js:80

TypeError: rejected is not a function
Stack trace:
reject@resource://devtools/shared/deprecated-sync-thenables.js:80:24
listenerJson@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/client/main.js:731:9
emitOnObject@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/event/core.js:112:9
emit@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/event/core.js:89:38
emit@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/client/main.js:1322:29
reject@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/client/main.js:1145:7
purgeRequests/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/client/main.js:1166:47
purgeRequests@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/client/main.js:1166:5
onClosed@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/client/main.js:1100:5
close@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/transport/transport.js:668:11
close@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/transport/transport.js:664:9
close@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/transport/transport.js:664:9
cleanup@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/client/main.js:371:7
detachClients@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/client/main.js:395:9
close@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/client/main.js:404:5
destroy@chrome://devtools/content/aboutdebugging/initializer.js:56:5
@chrome://devtools/content/aboutdebugging/initializer.js:66:3
  core.js:106
```

I guess it's to be expected though, since about:debugging is using files you are replacing!
Attachment #8850033 - Flags: review?(jryans) → review+
Pushed by apoirot@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/8b525d91101b
Reload devtools when installing the addon. r=jryans
(In reply to J. Ryan Stinnett [:jryans] (use ni?) (on PTO until Mar. 28) from comment #4)
> Comment on attachment 8850033 [details]
> Bug 1349509 - Reload devtools when installing the addon.
> 
> I guess it's to be expected though, since about:debugging is using files you
> are replacing!

This is related to the addon worflow/reload step.
Something doesn't get cleaned up correctly and ends up throwing.
This may be related to Cu.unload and not waiting enough before starting devtools again.

I would like to look seriously into that once we are on github.
In the meantime I consider that we still have to restart firefox to check for a modification against devtools safely.
https://hg.mozilla.org/mozilla-central/rev/8b525d91101b
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 55
Product: Firefox → DevTools
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: