If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

"Save" fails in Memory snapshot tool

VERIFIED FIXED in Firefox 54



Developer Tools: Memory
4 months ago
4 months ago


(Reporter: Jacob, Assigned: gregtatum)


53 Branch
Firefox 55

Firefox Tracking Flags

(firefox54 verified, firefox55 verified)


MozReview Requests


Submitter Diff Changes Open Issues Last Updated
Error loading review requests:


(2 attachments)



4 months ago
Created attachment 8869199 [details]
Screenshot 2017-05-18 16.42.34.png

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:53.0) Gecko/20100101 Firefox/53.0
Build ID: 20170504105526

Steps to reproduce:

Open the console
Choose "Memory"
Take snapshot
Attempt to save snapshot

Actual results:

Nothing. If I double-click, the word "Save" is highlighted.

Expected results:

https://developer.mozilla.org/en-US/docs/Tools/Memory/Basic_operations#Saving_and_loading_snapshots says “You'll be prompted for a name and location, and the file will be saved with an .fxsnapshot extension.”

Reproduces in Firefox 53.0.2 (64-bit) macOS and in 53.0.2 (32- and 64-bit) Windows.

Probably related: https://bugzilla.mozilla.org/show_bug.cgi?id=1332107


4 months ago
Component: Untriaged → Developer Tools: Memory
I can reproduce.
Ever confirmed: true

Comment 2

4 months ago
Browser Console shows:


"@@redux/middleware/task#error threw an exception: Error: No valid mode specified for nsIFilePicker.
Stack: exports.openFilePicker@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/client/memory/utils.js:421:11
exports.pickFileAndExportSnapshot/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/client/memory/actions/io.js:20:28
_run@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/task.js:311:39
TaskImpl@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/task.js:273:3
asyncFunction@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/task.js:247:14
spawn@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/task.js:161:12
task/</<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/client/shared/redux/middleware/task.js:21:14
onSave@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/client/memory/app.js:215:33
onClick@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/client/memory/components/snapshot-list-item.js:88:22
invokeGuardedCallback@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/client/shared/vendor/react.js:11386:12
executeDispatch@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/client/shared/vendor/react.js:2893:5
executeDispatchesInOrder@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/client/shared/vendor/react.js:2913:7
executeDispatchesAndRelease@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/client/shared/vendor/react.js:2348:5
executeDispatchesAndReleaseTopLevel@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/client/shared/vendor/react.js:2359:10
forEachAccumulated@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/client/shared/vendor/react.js:19780:5
processEventQueue@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/client/shared/vendor/react.js:2535:7
runEventQueueInBatch@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/client/shared/vendor/react.js:11455:3
handleTopLevel@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/client/shared/vendor/react.js:11466:5
handleTopLevelImpl@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/client/shared/vendor/react.js:11544:5
perform@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/client/shared/vendor/react.js:19035:13
batchedUpdates@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/client/shared/vendor/react.js:10660:7
batchedUpdates@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/client/shared/vendor/react.js:16668:3
dispatchEvent@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/client/shared/vendor/react.js:11621:7
Line: 421, column: 11"
Comment hidden (mozreview-request)

Comment 4

4 months ago
Comment on attachment 8869592 [details]
Bug 1366061 - Fix memory tool file picker;


Thanks for the fix!

Super nit-picky, but I think the commit message could be a bit more detailed / expressive. I don't think it stands on its own if someone else were to read the message and look at the diff.

Thanks again!
Attachment #8869592 - Flags: review?(nfitzgerald) → review+

Comment 5

4 months ago
Pushed by gtatum@mozilla.com:
Fix memory tool file picker; r=fitzgen

Comment 6

4 months ago
Last Resolved: 4 months ago
status-firefox55: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → Firefox 55
Do we need to uplift this?
Flags: needinfo?(gtatum)

Comment 8

4 months ago
Yes. It goes up all the way to release. Should I request uplifts all the way up?
Flags: needinfo?(gtatum)

Comment 9

4 months ago
Comment on attachment 8869592 [details]
Bug 1366061 - Fix memory tool file picker;

Approval Request Comment
[Feature/Bug causing the regression]:
Large code changes to make memory tool Eslint compliant. : Bug 1251728

[User impact if declined]:
Save button will not work in devtools memory tool.

[Is this code covered by automated tests?]:
The surrounding code is for exporting snapshots, but the privileged code where the regression was located is not.

[Has the fix been verified in Nightly?]:

[Needs manual test from QE? If yes, steps to reproduce]: 
- Open up devtools.
- Go to memory panel.
- Take a snapshot
- Hit save on the snapshot in the list on the left
- It should allow you to save the memory snapshot.
Actual results: Nothing happens when you click the button.

[List of other uplifts needed for the feature/fix]:
[Is the change risky?]:

[Why is the change risky/not risky?]:
It's a JS change to a developer tool with low open rates.

[String changes made/needed]: None.
Attachment #8869592 - Flags: approval-mozilla-beta?
Attachment #8869592 - Flags: approval-mozilla-aurora?


4 months ago
status-firefox54: --- → affected
Hi Brindusa, could you help find someone to verify if this issue was fixed as expected on a latest Nightly build? Thanks!
Flags: needinfo?(brindusa.tot)
Attachment #8869592 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora-

Comment 11

4 months ago
I have reproduced this bug with Nightly 55.0a1 (2017-05-18)  on Ubuntu 16.04, 64 bit!

The fix is now verified on Latest Nightly.

Build ID 	20170523100217
User Agent 	Mozilla/5.0 (X11; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0

Reproduced the bug with a Nightly 55.0a1 from 05/10/2017 on Windows 10 x64.

Verified as fixed on latest Nightly 55.0a1, build ID 20170524030204, on Windows 10 x64, Ubuntu 16.04 and Mac OS X 10.12.
status-firefox55: fixed → verified
Flags: needinfo?(brindusa.tot)
Comment on attachment 8869592 [details]
Bug 1366061 - Fix memory tool file picker;

Fix an issue related to memory snapshot tool and was verified. Beta54+. Should be in 54 beta 11.
Attachment #8869592 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Assignee: nobody → gtatum

Comment 14

4 months ago
status-firefox54: affected → fixed
Flags: qe-verify+
I have reproduced the issue mentioned in comment 0 using Firefox 55.0a1 (Build Id:20170518030213).

This issue is verified fixed on Firefox 54.0 (Build Id:20170605134926) on Windows 10 64bit, macOS 10.11.6 and Ubuntu 14.04 32bit
status-firefox54: fixed → verified
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.