Update utilities.js
Merge pull request #489 from f-mb/csl-mapping

Update csl mapping
Persist single position/size for all note windows

Previously, position/size was persisted for each item's note
individually, but that meant that there was no default position/size for
the note window and an entry was created in localstore.rdf for
every note opened in a new window. There's also a good chance people had
no idea what was going on.
Enforce minimum note font size of 6px

https://forums.zotero.org/discussion/37147/
Allow inline editing of collection names

Can be triggered by double-clicking or Return and also by F2 on
Windows/Linux

This does mean double-clicking no longer toggles the collection open and
closed. If we wanted to preserve that we could probably capture the
double-click.

Closes Trac ticket 231, only 8 years later
Link translator errors to troubleshooting page instead of known issues
Fix CSL-JSON date import
Merge pull request #494 from aurimasv/csljson-date

Fix CSL-JSON date import
Fix search condition handling when two conditions have same translation

This prevented one "Numéro" from working in the French locale.

Also do a proper collation sort
Hack to fix "Numéro" search condition in French locale

https://forums.zotero.org/discussion/14942/
Fix "<" in translator error popup in French locale

https://github.com/zotero/zotero/commit/ba89dbf0ae0617a14c269bf6f831f47653cfb566#commitcomment-6535838
Release server port when shutting down (e.g. switching to Connector mode)
Fix race condition when starting in Connector mode
When starting in Connector mode (i.e. Standalone is open), Zotero first starts in Full mode, looks for Standalone, then "shuts down" and restarts in Connector mode. `Zotero.shutdown()` returns a promise which is then followed up by a `Zotero.init` call. Thus, when starting in Connector mode, Zotero initialization is asynchronous and makes it possible for `Zotero_Browser.init()` to be called before `Zotero.initialized` is true, which prevents `Zotero_Browser` from initializing. Additionally, even if `Zotero_Browser.init()` is called after Zotero is initialized in Connector mode, it is possible that `Zotero_Browser.init()` will be called _after_ the "load" event for browser.xul has already fired, so `chromeLoad` is never called. This patch ensures that both of these race conditions are taken into account.
Merge pull request #495 from aurimasv/Fx-connector

Fix race condition when starting in Connector mode
Restore minimize/maximize buttons in note windows on Windows

From db6ec2b160b6f80bfb70d3c06a53a98be85d9405
Merge locales from Transifex
Retry failed ZFS uploads and downloads automatically

S3 upload timeouts were retried already with an exponential backoff, but
this adds retrying for other kinds of upload failures as well as failed
downloads.  If 5 consecutive failures occur a file sync error is
thrown.

Failed file sync requests to the Zotero API are not currently retried,
but S3 accounts for the majority.

The download portion of this still needs further testing.
Fix download retrying

Follow-up from 238a972a
Use Q instead of Task.spawn to run processUpdatedXML()

With Task.spawn, regular expressions in Zotero.DB were causing "too much
recursion" errors on Windows with JIT enabled.

This requires a change to Q to allow async() to take a generator instead
of a generator-maker (which is the reason it was using Task.spawn to
begin with).
Merge changes from 4.0