Commit graph

363 commits

Author SHA1 Message Date
Dan Stillman
b6a597a7f9 fx115: nsIPromptService → Services.prompt 2024-03-30 00:58:54 -04:00
Dan Stillman
920461cd9d fx115: Update lots of OS.File/OS.Path uses 2024-03-30 00:58:54 -04:00
Dan Stillman
13ab3bd87f fx115: Add command-line handling to Firefox command-line handler
XPCOM objects have to be statically registered now, so instead of
creating our own command-line handler, just stuff our code into the
Firefox one.

A few parameters require the Zotero object, which isn't available in the
Firefox CLH, so I've left those in zotero-service.js for now until we
decide how to deal with those.
2024-03-30 00:58:53 -04:00
Dan Stillman
2051f08b4c fx115: Move Zotero object initialization to zotero.mjs 2024-03-30 00:58:53 -04:00
Abe Jellinek
352f71e32e
Fix zotero://open/ and FileHandlers regressions (#3761) 2024-02-29 05:08:33 -05:00
Abe Jellinek
ea1b18881c zotero://open/: Use openReaderInNewWindow pref
Fixes #3541
2024-02-27 08:39:19 -08:00
Abe Jellinek
a7d59a90d3
Unify attachment opening code and support EPUB/snapshot note links (#3705) 2024-02-23 06:38:11 -05:00
Adomas Venčkauskas
34b389d118 Fix the startup missing data directory picker not working 2024-02-14 13:22:41 +02:00
yexingsha
6e7c80d97b changed all font-weight: bold/590 to 600 2024-01-24 23:32:15 -05:00
Abe Jellinek
1dd3812e00 Deprecate setFontSize(), replace with new Zotero.UIProperties
This new XPCOM module handles font size and UI density and automatically keeps
registered roots up to date when prefs change. Roots receive a
UIPropertiesChanged event after their properties are updated.
2024-01-24 03:39:09 -05:00
Abe Jellinek
21e50add60
Rename Safe Mode to Troubleshooting Mode (#3563) 2024-01-13 04:33:19 -05:00
Adomas Ven
8b77c96e97
Displays a browser window to clear captcha when saving attachments. (#3526)
- Currently enabled only for ScienceDirect. Can be enabled via a whitelist
- Matches the HiddenBrowser loaded HTML page for a captcha element. If
  the captcha element class changes, this will break (but the
  alternative is potentially displaying a captcha clearing window when
  something else that is not a captcha guard is loaded).
- Captcha clear timeout for 60s.
- Doesn't automatically switch focus back to the browser which intiated
  the item save via the Connector.
- Stores the cookies used to clear the captcha for future saves from the
  same domain. Discards Connector supplied User Agent, since CF bot
  detector checks UA header against actual UA behavior like TLS handshake
  and if the UA acts different to what it's supposed to, the bot
  challenge is not cleared.

Other changes:
- Adjusted the cookie sandbox to allow multiple cookie sandboxes to be
  active (and simplified some legacy code that was meant to cover a bug
  in old FX codebase).
- HiddenBrowser API changed to be Object oriented, translator tester
  in the translate repo will need to be updated after a merge (have the
  change ready).
- Improved Connector Server attachment progress handling
2023-12-27 04:43:50 -05:00
Dan Stillman
38081fa4b8 Fix files without extensions not opening in reader
Broken by 2b41b0127c

https://forums.zotero.org/discussion/109332/pdf-files-dont-show-after-update-zotero-7-beta
2023-11-10 16:30:42 -05:00
Abe Jellinek
278f2de7bd Fix iframe load stopping if attachment resource channel aborts (#67) 2023-08-07 16:07:56 -04:00
Abe Jellinek
2ef560f7d8 Extract ISBNs and DOIs from EPUB content (#64)
And move EPUB functionality to class.
2023-08-07 16:07:55 -04:00
Abe Jellinek
cab0fa93e7 Extend Retrieve Metadata to support EPUBs (#57) 2023-08-07 16:07:55 -04:00
Abe Jellinek
b408b43394 Support pre-SingleFile snapshots 2023-08-07 16:07:54 -04:00
Dan Stillman
fb59345637 Fix "Check for Update" buttons in error dialogs
Fixes #3213
2023-07-25 01:53:22 -04:00
windingwind
c89590c7b7
Add ItemTree column API (#3186) 2023-07-25 00:47:12 -04:00
Dan Stillman
8d3f874e64 Remove all uses of Zotero.isStandalone
(View diff with -w)
2023-07-11 05:35:32 -04:00
Adomas Venčkauskas
e3e607a6d4 Add support for macWord transaction initialization via HTTP 2023-06-16 03:24:03 -04:00
Dan Stillman
7c902d40a9 Timer updates
- Switch to Mozilla's Timer.jsm for timer functions in XPCOM scope
- Add setInterval/clearInterval/requestIdleCallback/cancelIdleCallback
- Add all timer functions to plugins sandbox
2023-05-28 04:51:21 -04:00
Abe Jellinek
76b7fd0dc1 Set preventDefault flag when URL is passed to CLH
Fixes #3132
2023-05-25 17:28:16 +03:00
Abe Jellinek
48f7830558 fx-compat: Load zotero://report/ channels as chrome
It seems that the issue wasn't that zotero:// URLs can't be loaded in a content
browser, but rather that the report extension was returning a channel that the
content browser couldn't access. For some reason, it handled that failure by
passing the URL off to the OS, which then opened a duplicate instance of Zotero.

Also:

- Remove ensureBrowserType() and always use <browser type="content"> in
  basicViewer (see b8966f)
- Fix system principal being used to load extensions without `loadAsChrome` set
  to true if an extension with `loadAsChrome` set to true had been loaded in the
  past
2023-04-10 16:01:09 -04:00
Adomas Venčkauskas
e10fc538d0
Add a prompt to import Mendeley DB if mendeley citation found in doc 2023-04-06 17:10:13 +02:00
Adomas Ven
ba06db2e19 Remove firefox-zotero IPC pipe and switching code (#2990) 2023-02-24 02:11:17 -05:00
Abe Jellinek
b8966f7878
fx-compat: Fix zotero:// protocol for reports (#2825)
- The protocol can no longer be marked "dangerous to load," only "UI resource"
  (accessible inside browsers but not by web pages).
- The protocol needs to run in the main process.
- We need to replace the XUL browser to reset its type attribute depending on
  whether we're loading a zotero protocol URI - zotero protocol URIs, maybe due
  to the protocol handler's tight coupling with the main process, cannot load in
  type="content" browsers.
2022-10-03 07:31:17 -04:00
Abe Jellinek
018e534383 fx-compat: Zotero service: Correct reportError() call 2022-09-09 13:50:47 -07:00
Abe Jellinek
ca894c3416 fx-compat: Zotero protocol handler: Correct constant name 2022-09-09 13:50:40 -07:00
Abe Jellinek
8d75f37548
fx-compat: Add preferences with full-text/keyword search (#2659) 2022-08-10 18:26:23 -04:00
Dan Stillman
78b0055206 Change app id to zotero@zotero.org
And remove all references to old id

We can do this because plugins will use new mechanisms for install and
update manifests that don't use the id (which also means it's now only
used internally).
2022-08-08 05:11:21 -04:00
Dan Stillman
51f9150410 fx-compat: Initial plugin support
Plugins are ZIPs containing at least these two files:

- manifest.json: A WebExtension MV2 manifest with basic metadata
  properties and `applications.gecko` with `id` and `update_url`
- bootstrap.js: A bootstrap file, similar to old bootstrapped extensions,
  with `installed()`, `startup()`, `shutdown()`, and `uninstalled()`
2022-08-05 01:08:51 -04:00
Dan Stillman
0120877623 fx-compat: Avoid automatic safe mode from Ctrl-C
Pressing Ctrl-C via the terminal is counted as a crash, and after three
recent crashes automatic safe mode is triggered. In Firefox, this
displays a prompt:

> Firefox closed unexpectedly while starting. This might be caused by
> add-ons or other problems. You can try to resolve the problem by
> troubleshooting in Safe Mode.

For us, that dialog doesn't appear for some reason (maybe we could make
it?) and Zotero just automatically opens in Safe Mode, which causes
state not to be restored and results in an annoying process fork that
breaks Ctrl-C. We might as well keep the automatic-safe-mode behavior
for end users, but we don't want to trigger it while working via the
terminal, so we just clear the recent crash counter when using
`-ZoteroDebug` or `-ZoteroDebugText`. (`extensions.zotero.debug.log`
won't trigger it, so it's best to use `-ZoteroDebugText`, which is
included automatically via the `build_and_run` script.)
2022-06-23 05:42:57 -04:00
Dan Stillman
41dd75af8a Wait for Zotero.init() before returning Zotero.reinit()
Not sure if this makes a difference, but it seems more correct.
2022-06-17 20:24:43 -04:00
Dan Stillman
f454944f8c fx-compat: Fix files not showing up in debugger 2022-06-16 04:19:41 -04:00
Dan Stillman
9e9ecc7dcf fx-compat: XPCOMUtilsComponentUtils for generateNSGetFactory 2022-05-13 04:28:56 -04:00
Dan Stillman
66a60eea64 fx-compat: Update custom protocol handler 2022-05-12 05:18:47 -04:00
Dan Stillman
94c7e0674d fx-compat: Remove 'context' from onStartRequest()/onStopRequest()/etc. 2022-05-12 05:18:47 -04:00
Dan Stillman
3454705825 fx-compat: Update devtools server loading 2022-05-12 05:18:47 -04:00
Dan Stillman
ccbc785499 fx-compat: XPCOMUtils.generateQI() → ChromeUtils.generateQI() 2022-05-12 02:38:59 -04:00
Dan Stillman
e5558b6f3e Remove note backup functionality
Closes #2191
2022-03-05 06:12:29 -05:00
Dan Stillman
db35f55c96 Limit autocomplete in Advanced Search to specific creator types
For `author`, `bookAuthor`, and `editor` conditions added in #2253
2022-02-17 01:43:39 -05:00
Adomas Ven
44b6cd0525
citeproc-rs support (#2220)
Disabled under zotero.cite.useCiteprocRs by default
2021-12-15 17:28:41 -05:00
Martynas Bagdonas
85b142ccb2
Restore tabs state (#2148) 2021-08-23 13:02:57 -04:00
Adomas Venčkauskas
cbbff600a6 XUL -> JS tree megacommit
- Just a single huge commit. This has been developed over too long a
time, required many tiny changes across too many files and has seen too
many iterations to be separated into separate commits.
The original branch with all the messy commits will be kept around for
posterity
bb220ad0f2...adomasven:feature/react-item-tree
- Replaces XUL <tree> element across the whole zotero client codebase
with a custom supermegafast virtualized-table inspired by
react-virtualized yet mimicking old XUL treeview API. The
virtualized-table sits on top on a raw-to-the-metal,
interpreted-at-runtime JS based windowing solution inspired by
react-window. React-based solutions could not be used because they were
slow and Zotero UI needs to be responsive and be able to
display thousands of rows in a treeview without any slowdowns.
- Attempts were made at making this screen-reader friendly, but yet to
be tested with something like JAWS
- RTL-friendly
- Styling and behaviour across all platforms was copied as closely as
possible to the original XUL tree
- Instead of row-based scroll snapping this has smooth-scrolling. If
you're using arrow keys to browse through the tree then it effectively
snap-scrolls. Current CSS snap scroll attributes do not seem to work in
the way we would require even on up-to-date browsers, yet alone the ESR
version of FX that Zotero is on. JS solutions are either terrible for
performance or produce inexcusable jitter.
- When dragging-and-dropping items the initial drag freezes the UI for
a fairly jarring amount of time. Does not seem to be fixable due to
the synchronous code that needs to be run in the dragstart handler.
Used to be possible to run that code async with the XUL tree.
- Item tree column picker no longer has a dedicated button. Just
right-click the columns. The column preferences (width, order, etc) are
no longer handled by XUL, which required a custom serialization and
storage solution that throws warnings in the developer console due to
the amount of data being stored. Might cause temporary freezing on HDDs
upon column resize/reorder/visibility toggling.
- Context menu handling code basically unchanged, but any UI changes
that plugins may have wanted to do (including adding new columns) will
have to be redone by them. No serious thought has gone into how plugin
developers would achieve that yet.
- Opens up the possibility for awesome alternative ways to render the
tree items, including things like multiple-row view for the item tree,
which has been requested for a long while especially by users switching
from other referencing software
2021-08-21 06:58:12 -04:00
Martynas Bagdonas
9b3367f227 Allow zotero://open-pdf/ to navigate to specific annotation by key
zotero://open-pdf/library/items/AABBCCDD?annotation=[annotation-key]

Fallback to a page if annotation is missing:
zotero://open-pdf/library/items/AABBCCDD?page=123&annotation=[annotation-key]

Fixes #2125
2021-08-06 13:06:40 +03:00
Adomas Venčkauskas
7814efcfe2 Use zotero/translate and zotero/utilities for shared code 2021-07-28 15:46:07 +03:00
Martynas Bagdonas
814cbc0ee3 Introduce spell checker context menu and dictionaries managing 2021-06-23 19:25:46 -04:00
Dan Stillman
f3aca749d9 Autocomplete improvements
- Limit field autocomplete to current library in item pane (previously
  only done for creator and access date)
- Improve positional parameter usage to avoid duplicate parameters
- Code cleanup
2021-06-04 02:14:17 -04:00
Martynas Bagdonas
8799de5284 Display embedded images in item reports
Fixes #2002
2021-04-28 13:05:43 +03:00