piroor / save-selected-tabs-to-files

Provides ability to save selected tabs to local files for Firefox 63 and later.
Other
18 stars 4 forks source link

Quickly closing Save File dialogs crashes Firefox #12

Open tkzv opened 5 months ago

tkzv commented 5 months ago

Short description

I mistakenly started saving a large number of pages. Each asked for a file name. When I tried to close the dialog windows with Esc key, it crashed Firefox.

This may be a Firefox rather than the add-on problem, but I don't know how to reproduce it without the add-on to report it.

Steps to reproduce

  1. Start Firefox with clean profile.
  2. Install "Save Selected Tabs to Files" add-on.
  3. In the add-on settings set "Run 1 downloads parallelly"
  4. In Firefox downloads settings enable "Always ask where to save files".
  5. Open several pages as tabs in the same window. I used 11 copies of the file <html><head><title>Sample file</title></head><body><p>Sample text</p></body></html> on a localhost web server.
  6. Select all tabs.
  7. Right-click, select "Save Selected Tabs to Files".
  8. When "Save As" dialog opens, press and hold Esc.

Expected result

Dialogs appear and quickly disappear. No extra traffic, no garbage on the disk.

Actual result

Firefox crashes. Console output:

$ firefox -ProfileManager
JavaScript error: resource://gre/modules/XULStore.sys.mjs, line 60: Error: Can't find profile directory.
JavaScript error: resource://gre/modules/XULStore.sys.mjs, line 60: Error: Can't find profile directory.
JavaScript error: resource://gre/modules/XULStore.sys.mjs, line 60: Error: Can't find profile directory.
JavaScript error: resource://gre/modules/XULStore.sys.mjs, line 60: Error: Can't find profile directory.
console.error: (new UnknownError("IndexedDB: main/url-classifier-skip-urls getLastModified() IndexedDB:   The operation failed for reasons unrelated to the database itself and not covered by any other error code.", "resource://services-settings/IDBHelpers.jsm", 18))
console.error: ({})
console.error: (new TypeError("a is null", "resource://gre/modules/components-utils/mozjexl.js", 1))
console.error: (new TypeError("a is null", "resource://gre/modules/components-utils/mozjexl.js", 1))
console.error: (new TypeError("a is null", "resource://gre/modules/components-utils/mozjexl.js", 1))
console.error: (new TypeError("a is null", "resource://gre/modules/components-utils/mozjexl.js", 1))
JavaScript error: resource://gre/modules/XULStore.sys.mjs, line 60: Error: Can't find profile directory.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Segmentation fault

Environment