Closed Bug 1581778 Opened 1 year ago Closed 1 year ago

Perma Tier 2 browser_devtools_api.js | A promise chain failed to handle a rejection: Can not send request because front 'domwalker' is already destroyed. - stack: generateRequestMethods/</frontProto[name]@resource:Front/FrontClassWithSpec.js:29:15

Categories

(DevTools :: Framework, defect, P5)

defect

Tracking

(firefox-esr60 unaffected, firefox-esr68 unaffected, firefox69 unaffected, firefox70 unaffected, firefox71 fixed)

RESOLVED FIXED
Firefox 71
Tracking Status
firefox-esr60 --- unaffected
firefox-esr68 --- unaffected
firefox69 --- unaffected
firefox70 --- unaffected
firefox71 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: pbro)

Details

(Keywords: intermittent-failure, regression)

Attachments

(1 file)

Filed by: rgurzau [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer.html#?job_id=266994340&repo=mozilla-central
Full log: https://queue.taskcluster.net/v1/task/MjjD2uZdSSGntASqUviSMQ/runs/0/artifacts/public/logs/live_backing.log


08:02:18 INFO - TEST-PASS | devtools/client/framework/test/browser_devtools_api.js | toolDefinition id is correct -
08:02:18 INFO - Testing toolbox tool-unregistered event
08:02:18 INFO - Buffered messages logged at 08:02:18
08:02:18 INFO - TEST-PASS | devtools/client/framework/test/browser_devtools_api.js | Event returns correct id -
08:02:18 INFO - TEST-PASS | devtools/client/framework/test/browser_devtools_api.js | Toolbox: The tool is not registered -
08:02:18 INFO - TEST-PASS | devtools/client/framework/test/browser_devtools_api.js | The tool is no longer registered -
08:02:18 INFO - Testing toolbox tool-registered event
08:02:18 INFO - TEST-PASS | devtools/client/framework/test/browser_devtools_api.js | Event returns correct id -
08:02:18 INFO - TEST-PASS | devtools/client/framework/test/browser_devtools_api.js | Toolbox: The tool is registered -
08:02:18 INFO - TEST-PASS | devtools/client/framework/test/browser_devtools_api.js | The tool is registered -
08:02:18 INFO - Unregistering tool
08:02:18 INFO - Destroying toolbox
08:02:18 INFO - Console message: [JavaScript Warning: "Use of nsIFile in content process is deprecated." {file: "resource://gre/modules/NetUtil.jsm" line: 253}]
08:02:18 INFO - Console message: [JavaScript Error: "Error: Can not send request because front 'domwalker' is already destroyed." {file: "resource://devtools/shared/protocol/Front/FrontClassWithSpec.js" line: 29}]
08:02:18 INFO - TEST-PASS | devtools/client/framework/test/browser_devtools_api.js | gDevTools doesn't know about target -
08:02:18 INFO - TEST-PASS | devtools/client/framework/test/browser_devtools_api.js | toolbox doesn't know about target. -
08:02:18 INFO - Buffered messages finished
08:02:19 INFO - TEST-UNEXPECTED-FAIL | devtools/client/framework/test/browser_devtools_api.js | A promise chain failed to handle a rejection: Can not send request because front 'domwalker' is already destroyed. - stack: generateRequestMethods/</frontProto[name]@resource://devtools/shared/protocol/Front/FrontClassWithSpec.js:29:15
08:02:19 INFO - getNodeFromActor@resource://devtools/shared/fronts/inspector.js:190:18
08:02:19 INFO - exports.updateDetails/<@resource://devtools/client/accessibility/actions/details.js:17:15
08:02:19 INFO - thunk/</<@resource://devtools/client/shared/redux/middleware/thunk.js:15:9
08:02:19 INFO - task/</<@resource://devtools/client/shared/redux/middleware/task.js:59:12
08:02:19 INFO - update@resource://devtools/client/accessibility/components/AccessibilityRow.js:162:13
08:02:19 INFO - asynccomponentDidUpdate@resource://devtools/client/accessibility/components/AccessibilityRow.js:123:12
08:02:19 INFO - commitLifeCycles@resource://devtools/client/shared/vendor/react-dom.js:12958:22
08:02:19 INFO - commitAllLifeCycles@resource://devtools/client/shared/vendor/react-dom.js:14174:23
08:02:19 INFO - commitRoot@resource://devtools/client/shared/vendor/react-dom.js:14380:28
08:02:19 INFO - completeRoot/<@resource://devtools/client/shared/vendor/react-dom.js:15731:15
08:02:19 INFO - unstable_runWithPriority@resource://devtools/client/shared/vendor/react.js:617:12
08:02:19 INFO - completeRoot@resource://devtools/client/shared/vendor/react-dom.js:15730:27
08:02:19 INFO - performWorkOnRoot@resource://devtools/client/shared/vendor/react-dom.js:15659:21
08:02:19 INFO - performWork@resource://devtools/client/shared/vendor/react-dom.js:15567:24
08:02:19 INFO - performSyncWork@resource://devtools/client/shared/vendor/react-dom.js:15541:14
08:02:19 INFO - requestWork@resource://devtools/client/shared/vendor/react-dom.js:15410:5
08:02:19 INFO - scheduleWork@resource://devtools/client/shared/vendor/react-dom.js:15224:16
08:02:19 INFO - enqueueSetState@resource://devtools/client/shared/vendor/react-dom.js:8192:17
08:02:19 INFO - Component.prototype.setState@resource://devtools/client/shared/vendor/react.js:328:16
08:02:19 INFO - onStateChange@resource://devtools/client/shared/vendor/react-redux.js:1412:16
08:02:19 INFO - notify@resource://devtools/client/shared/vendor/react-redux.js:1159:21
08:02:19 INFO - notifyNestedSubs@resource://devtools/client/shared/vendor/react-redux.js:1198:20
08:02:19 INFO - onStateChange@resource://devtools/client/shared/vendor/react-redux.js:1409:16
08:02:19 INFO - dispatch@resource://devtools/client/shared/vendor/redux.js:416:7
08:02:19 INFO - exports.history/</</<@resource://devtools/client/shared/redux/middleware/history.js:23:9
08:02:19 INFO - waitUntilService/</<@resource://devtools/client/shared/redux/middleware/wait-service.js:59:24
08:02:19 INFO - promiseMiddleware/</<@resource://devtools/client/shared/redux/middleware/promise.js:36:14
08:02:19 INFO - thunk/</<@resource://devtools/client/shared/redux/middleware/thunk.js:16:9
08:02:19 INFO - task/</<@resource://devtools/client/shared/redux/middleware/task.js:59:12
08:02:19 INFO - dispatch@resource://devtools/client/shared/vendor/redux.js:755:18
08:02:19 INFO - exports.fetchChildren/</<@resource://devtools/client/accessibility/actions/accessibles.js:20:31
08:02:19 INFO - promise callback
exports.fetchChildren/<@resource://devtools/client/accessibility/actions/accessibles.js:20:6
08:02:19 INFO - thunk/</<@resource://devtools/client/shared/redux/middleware/thunk.js:15:9
08:02:19 INFO - task/</<@resource://devtools/client/shared/redux/middleware/task.js:59:12
08:02:19 INFO - getChildren@resource://devtools/client/accessibility/provider.js:36:19

This started with this merge: https://hg.mozilla.org/mozilla-central/pushloghtml?changeset=22ced1a079e01b240690d2c20f51c6bc15a8ac4a

Patrick can you assign someone to take a look?

Flags: needinfo?(pbrosset)

Hey Honza, this test is for a public API that we do not support anymore. Are you fine with deleting it or should we keep it?

Flags: needinfo?(pbrosset) → needinfo?(odvarko)

So, if I understand correctly the test, it's testing:
gDevTools.unregisterTool
gDevTools.registerTool

But, aren't these consumed by WebExtension API?
I know that WebExt API allows to add a new panel.

Luca?

Honza

Flags: needinfo?(odvarko) → needinfo?(lgreco)

(In reply to Jan Honza Odvarko [:Honza] (always need-info? me) from comment #5)

So, if I understand correctly the test, it's testing:
gDevTools.unregisterTool
gDevTools.registerTool

But, aren't these consumed by WebExtension API?
I know that WebExt API allows to add a new panel.

Luca?

gDevTools.unregisterTool and gDevTools.registerTool were used to register tools globally, and they are not used by the WebExtensions DevTools API.

The WebExtensions DevTools API internals are using the API provided by DevToolsShim.jsm and by the DevTools toolbox object.

The WebExtensions devtools APIs are mainly extending the devtools "per toolbox" (instead of globally), in particular by using the following toolbox methods:

  • toolbox.registerWebExtension / toolbox.unregisterWebExtension (to ensure that the extension is listed in the DevTools settings panel)
  • toolbox.addAdditionalTool / toolbox.removeAdditionalTool (to add and remove a devtools panel from a toolbox)
  • toolbox.registerInspectorExtensionSidebar / toolbox.unregisterInspectorExtensionSidebar (to add and remove a devtools sidebar from the inspector panel)
Flags: needinfo?(lgreco)

(In reply to Patrick Brosset <:pbro> from comment #4)

Hey Honza, this test is for a public API that we do not support anymore. Are you fine with deleting it or should we keep it?

So, yep, I think it can be removed.
Thanks Patrick.
Honza

(In reply to Luca Greco [:rpl] [:luca] [:lgreco] from comment #6)

gDevTools.unregisterTool and gDevTools.registerTool were used to register tools globally, and they are not used by the WebExtensions DevTools API.

The WebExtensions DevTools API internals are using the API provided by DevToolsShim.jsm and by the DevTools toolbox object.

The WebExtensions devtools APIs are mainly extending the devtools "per toolbox" (instead of globally), in particular by using the following toolbox methods:

  • toolbox.registerWebExtension / toolbox.unregisterWebExtension (to ensure that the extension is listed in the DevTools settings panel)
  • toolbox.addAdditionalTool / toolbox.removeAdditionalTool (to add and remove a devtools panel from a toolbox)
  • toolbox.registerInspectorExtensionSidebar / toolbox.unregisterInspectorExtensionSidebar (to add and remove a devtools sidebar from the inspector panel)

Thanks for quick response Luca!
Honza

Assignee: nobody → pbrosset
Status: NEW → ASSIGNED
Pushed by pbrosset@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/8c8c8116d91d
Deleting the now useless browser_devtools_api.js test; r=Honza
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 71
You need to log in before you can comment on or make changes to this bug.