Commit graph

10719 commits

Author SHA1 Message Date
Dan Stillman
42d570e623 Remove timeout for file sync uploads
Regression from 50b65b3010, and a proper fix a9c10309f7
2019-10-14 00:52:03 -04:00
Dan Stillman
da690a45b1 Make sync upload timeout 60 seconds, not 60 milliseconds 2019-10-10 20:07:55 -04:00
Dan Stillman
af2b6207b2 Decrease batch size and increase HTTP timeout for sync uploads
Some write requests are taking > 30 seconds
2019-10-10 19:15:58 -04:00
Dan Stillman
89672ed0a4 Fix "c1 is undefined" sync CR error 2019-10-09 18:29:04 -04:00
Dan Stillman
4e63cfd40e Update submodules 2019-10-08 01:10:34 -04:00
Dan Stillman
220c9e7cbb Update locales from Transifex 2019-10-08 00:54:04 -04:00
Dan Stillman
efdc4bae19 Fx60: Fix parsing of some default preferences for extensions 2019-10-02 04:56:29 -04:00
Dan Stillman
01e988f07d Don't hard-code 'url' fieldID 2019-09-30 04:43:31 -04:00
Dan Stillman
a9c10309f7 Detect TimeoutException during ZFS S3 upload
We're not currently setting a timeout, so this shouldn't happen, but
someone [1] is getting a timeout error with undefined ms and
NS_BINDING_ABORTED from the channel. It also happened during a /fulltext
upload, so it's not limited to S3, but this fix should give a more
helpful error message for such errors during file syncing.

[1] https://forums.zotero.org/discussion/79286/
2019-09-29 04:18:03 -04:00
Dan Stillman
cf9e5f62f1 Fix test failure due to missing yield 2019-09-29 03:03:38 -04:00
Dan Stillman
44d4586242 Fix test after 8aeb6f7fe4 2019-09-28 07:40:01 -04:00
Dan Stillman
8aeb6f7fe4 Mark fields as changed when migrating Extra fields
We're not migrating fields yet, but when we do, I think marking them as
changed will be the safer option. We'll just have to make sure that
conflicts without differences are resolved automatically on all
platforms.
2019-09-28 06:58:54 -04:00
Dan Stillman
96caed8453 More concise version of f827f1e04 2019-09-28 06:12:26 -04:00
Dan Stillman
f827f1e049 Fix error if no colored tags (regression from b310ccb04) 2019-09-27 13:48:28 -04:00
Dan Stillman
b310ccb04e Fix broken tag selector due to leading/trailing whitespace in colored tags
And sanitize colored tags in DB at startup
2019-09-25 17:33:36 -04:00
Dan Stillman
ac255634c5 Fix tag selection in read-only libraries
Reactification mistakenly disabled tag selection instead of just
disabling the context menu options.
2019-09-23 20:09:26 -04:00
Dan Stillman
86d924df9e Force Lucida Grande in Quick Format on non-Retina Macs for Catalina 2019-09-23 03:39:06 -04:00
Dan Stillman
5723683b3b Fix "attachmentSyncedModificationTime must be a number" sync error
https://forums.zotero.org/discussion/79011/zotero-error-report
2019-09-21 01:59:09 -04:00
Dan Stillman
4b7cdddb4a Change apply-to-all checkbox text for some conflicts
Say "Use the [local|remote] version for all remaining conflicts" for
everything instead of saying "Use [local|remote] fields for all
remaining conflicts" for some conflicts.

This also fixes a test failure after 54343c49fb.
2019-09-21 01:35:36 -04:00
Dan Stillman
54b268fe01 Add global parameter to Zotero.Prefs.registerObserver()
This allows Zotero.Prefs to be used instead of Services.prefs for pref
observing in plugins.

Zotero.Prefs.prefBranch was replaced by Zotero.Prefs.rootBranch.
2019-09-20 04:29:02 -04:00
Dan Stillman
82ce5d9742 Fx60: Read in default preferences for extensions
Default prefs are no longer read automatically, so we need to do it
manually. Preferences may not be read before extensions load, so they
should wait for Zotero.Schema.schemaUpdatePromise or
Zotero.uiReadyPromise before initializing.
2019-09-20 04:28:49 -04:00
Dan Stillman
72234e0cb2 Additional debugging for file sync error
"attachmentSyncedModificationTime must be a number"
2019-09-17 17:54:13 -04:00
Dan Stillman
7bcec02326 Remove code to prompt for Firefox extension updates on startup error
And change button from "Check for Update" to "Check for Updates"
2019-09-16 02:27:22 -04:00
Dan Stillman
4b60c6ca27 Type/field handling overhaul
This changes the way item types, item fields, creator types, and CSL
mappings are defined and handled, in preparation for updated types and
fields.

Instead of being predefined in SQL files or code, type/field info is
read from a bundled JSON file shared with other parts of the Zotero
ecosystem [1], referred to as the "global schema". Updates to the
bundled schema file are automatically applied to the database at first
run, allowing changes to be made consistently across apps.

When syncing, invalid JSON properties are now rejected instead of being
ignored and processed later, which will allow for schema changes to be
made without causing problems in existing clients. We considered many
alternative approaches, but this approach is by far the simplest,
safest, and most transparent to the user.

For now, there are no actual changes to types and fields, since we'll
first need to do a sync cut-off for earlier versions that don't reject
invalid properties.

For third-party code, the main change is that type and field IDs should
no longer be hard-coded, since they may not be consistent in new
installs. For example, code should use `Zotero.ItemTypes.getID('note')`
instead of hard-coding `1`.

[1] https://github.com/zotero/zotero-schema
2019-09-16 02:27:22 -04:00
Dan Stillman
d394db61e5 Change 'dontCache' option to 'noCache' in HTTP.request() 2019-09-16 01:28:57 -04:00
Dan Stillman
20d7ef6c0b Add separate .eslintrc for tests 2019-09-16 01:28:52 -04:00
Dan Stillman
ddf2a6a116 Don't mock HTTP requests for resource:// or chrome:// URLs 2019-09-16 01:28:35 -04:00
Dan Stillman
cb11e5a3e0 Fix HTTP.request() status of 0 on connection interruption
`status` was being set to undefined instead of 0, likely in a regression
from b78212084.
2019-09-16 01:27:47 -04:00
Dan Stillman
50b65b3010 Set default HTTP.request() timeout to 30 seconds 2019-09-16 01:27:42 -04:00
Dan Stillman
7aa68a0f75 Update MIME.getMIMETypeFromURL() for non-Bluebird HTTP.request() 2019-09-16 01:27:36 -04:00
Dan Stillman
e8dd1f7824 Test updates for newer Sinon 2019-09-16 01:27:30 -04:00
Dan Stillman
ca7217cff7 Add HTTP cancellation support to sync runner 2019-09-16 01:27:26 -04:00
Dan Stillman
25e34b7b99 Update WebDAV request timeouts for HTTP.request() auto 5xx retry 2019-09-16 01:27:18 -04:00
Dan Stillman
dc60e5f840 HTTP.request() improvements
- Move 5xx retries and connection checking out of the sync API client
  and into HTTP.request() so that they apply to all requests. 429 handling
  remains in the API client, since not all callers necessarily want to
  handle that the same way. Callers can still handle 5xx themselves by
  including the relevant 5xx status codes in `successCodes` or by passing
  `errorDelayMax: 0`.
- Add `cancellerReceiver` option, which is a callback that receives a
  function that will cancel the request, whether it's an active request
  or an automatic delay before a 5xx retry.

This also updates Sinon to 7.3.2.
2019-09-16 01:26:34 -04:00
Dan Stillman
e25786e74c Update locales from Transifex and merge new English strings 2019-09-16 01:20:56 -04:00
Dan Stillman
25f29d92f2 Fix error reporting within fake XHR server handlers in tests
And fix removal of Bluebird lines from stack traces
2019-09-16 00:52:53 -04:00
Dan Stillman
38d031ecbe Log stack trace from Zotero.warn() 2019-09-16 00:52:32 -04:00
Dan Stillman
f292d9c030 Clarify translator/style repository update modes 2019-09-16 00:51:33 -04:00
Dan Stillman
82b7cae69a Remove code to prompt for Firefox extension updates on startup error
And change button from "Check for Update" to "Check for Updates"
2019-09-16 00:48:34 -04:00
Dan Stillman
f04f186396 Add missing yield in sync code 2019-09-16 00:47:45 -04:00
Dan Stillman
7ed0d8a408 Fix recognizePDF test after DOI translator change 2019-09-16 00:46:49 -04:00
Dan Stillman
54343c49fb Fix "getNote() can only be called on notes and attachments" CR error
This bug may be as old as the sync system itself. It could occur if
there were conflicts for both a note and a regular item in the same
batch.
2019-09-16 00:39:06 -04:00
Dan Stillman
3f3b6501ce Update whitelist for TinyMCE 2019-09-16 00:38:47 -04:00
Dan Stillman
725e6e779e Add debugParams option to DB.query() to disable parameter logging
Allow logging of queries without including very large parameter values
2019-09-16 00:38:18 -04:00
Dan Stillman
a85d707226 Fix double progress meter in DB upgrade overlay 2019-09-16 00:38:18 -04:00
Adomas Venčkauskas
c3c7f0a8ae Allow /connector/document/respond to take non-double JSON encoded data 2019-09-11 14:05:46 +03:00
Dan Stillman
3666da5b22 Additional debugging for file sync error
"attachmentSyncedModificationTime must be a number"
2019-09-11 00:13:52 -04:00
Dan Stillman
0bd04877bf Don't run detectWeb/doWeb in Scaffold if target doesn't match
Closes #1728
2019-08-30 01:02:12 -04:00
Dan Stillman
95a9ccae69 Update ACE to 17.06.19
Addresses #1727
2019-08-28 08:05:48 -04:00
Dan Stillman
f0e9c8bfba Fx60: Fix Scaffold
Fixes #1727
2019-08-28 07:44:35 -04:00