fx115: Change FilePicker to Mozilla ESM style

var { FilePicker } = ChromeUtils.importESModule('chrome://zotero/content/modules/filePicker.mjs');
This commit is contained in:
Dan Stillman 2023-12-03 04:34:59 -05:00
parent 95d577beb6
commit c36f40735c
15 changed files with 21 additions and 24 deletions

View file

@ -30,7 +30,7 @@ var { RemoteTranslate } = ChromeUtils.import("chrome://zotero/content/RemoteTran
var { ContentDOMReference } = ChromeUtils.import("resource://gre/modules/ContentDOMReference.jsm"); var { ContentDOMReference } = ChromeUtils.import("resource://gre/modules/ContentDOMReference.jsm");
var { Zotero } = ChromeUtils.importESModule("chrome://zotero/content/zotero.mjs"); var { Zotero } = ChromeUtils.importESModule("chrome://zotero/content/zotero.mjs");
import FilePicker from 'zotero/modules/filePicker'; var { FilePicker } = ChromeUtils.importESModule('chrome://zotero/content/modules/filePicker.mjs');
// Fix JSON stringify 2028/2029 "bug" // Fix JSON stringify 2028/2029 "bug"
// Borrowed from http://stackoverflow.com/questions/16686687/json-stringify-and-u2028-u2029-check // Borrowed from http://stackoverflow.com/questions/16686687/json-stringify-and-u2028-u2029-check

View file

@ -23,9 +23,8 @@
***** END LICENSE BLOCK ***** ***** END LICENSE BLOCK *****
*/ */
Components.utils.import("resource://gre/modules/osfile.jsm");
Components.utils.import("resource://gre/modules/Services.jsm"); Components.utils.import("resource://gre/modules/Services.jsm");
import FilePicker from 'zotero/modules/filePicker'; var { FilePicker } = ChromeUtils.importESModule('chrome://zotero/content/modules/filePicker.mjs');
import { ImportCitaviAnnotatons } from 'zotero/import/citavi'; import { ImportCitaviAnnotatons } from 'zotero/import/citavi';
/****Zotero_File_Exporter**** /****Zotero_File_Exporter****

View file

@ -25,7 +25,7 @@
/* eslint camelcase: ["error", {allow: ["Zotero_File_Interface", "Zotero_Import_Wizard"]} ] */ /* eslint camelcase: ["error", {allow: ["Zotero_File_Interface", "Zotero_Import_Wizard"]} ] */
/* global Zotero_File_Interface: false, mendeleyAPIUtils: false */ /* global Zotero_File_Interface: false, mendeleyAPIUtils: false */
import FilePicker from 'zotero/filePicker'; var { FilePicker } = ChromeUtils.importESModule('chrome://zotero/content/modules/filePicker.mjs');
import React from 'react'; import React from 'react';
import ReactDOM from 'react-dom'; import ReactDOM from 'react-dom';
import ProgressQueueTable from 'components/progressQueueTable'; import ProgressQueueTable from 'components/progressQueueTable';

View file

@ -23,8 +23,11 @@
***** END LICENSE BLOCK ***** ***** END LICENSE BLOCK *****
*/ */
import { Cc, Ci, Cu } from 'chrome'; const lazy = {};
Cu.import("resource://gre/modules/osfile.jsm");
ChromeUtils.defineESModuleGetters(lazy, {
FileUtils: "resource://gre/modules/FileUtils.sys.mjs",
});
/** /**
* Interface to the system filepicker. * Interface to the system filepicker.
@ -34,7 +37,7 @@ Cu.import("resource://gre/modules/osfile.jsm");
* *
* @class * @class
*/ */
class FilePicker { export class FilePicker {
constructor() { constructor() {
this._fp = Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker); this._fp = Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker);
} }
@ -76,7 +79,7 @@ class FilePicker {
* @return {Promise<Integer>} One of the return constants * @return {Promise<Integer>} One of the return constants
*/ */
async show() { async show() {
return new Zotero.Promise(function (resolve) { return new Promise(function (resolve) {
this._fp.open(returnConstant => resolve(returnConstant)); this._fp.open(returnConstant => resolve(returnConstant));
}.bind(this)); }.bind(this));
}; };
@ -164,7 +167,7 @@ FilePicker.prototype.filterVideo = 0x200;
set: function (val) { set: function (val) {
if (prop == 'displayDirectory') { if (prop == 'displayDirectory') {
// Convert to nsIFile // Convert to nsIFile
val = Zotero.File.pathToFile(val); val = new lazy.FileUtils.File(val);
} }
this._fp[prop] = val; this._fp[prop] = val;
}, },
@ -222,5 +225,3 @@ FilePicker.prototype.filterVideo = 0x200;
}); });
Object.freeze(FilePicker.prototype); Object.freeze(FilePicker.prototype);
export default FilePicker;

View file

@ -24,7 +24,7 @@
*/ */
Components.utils.import("resource://gre/modules/Services.jsm"); Components.utils.import("resource://gre/modules/Services.jsm");
import FilePicker from 'zotero/modules/filePicker'; var { FilePicker } = ChromeUtils.importESModule('chrome://zotero/content/modules/filePicker.mjs');
Zotero_Preferences.Advanced = { Zotero_Preferences.Advanced = {
init: function () { init: function () {

View file

@ -25,7 +25,7 @@
"use strict"; "use strict";
import FilePicker from 'zotero/modules/filePicker'; var { FilePicker } = ChromeUtils.importESModule('chrome://zotero/content/modules/filePicker.mjs');
var React = require('react'); var React = require('react');
var ReactDOM = require('react-dom'); var ReactDOM = require('react-dom');

View file

@ -27,7 +27,7 @@
Components.utils.import("resource://gre/modules/Services.jsm"); Components.utils.import("resource://gre/modules/Services.jsm");
Components.utils.import("resource://gre/modules/osfile.jsm"); Components.utils.import("resource://gre/modules/osfile.jsm");
import FilePicker from 'zotero/modules/filePicker'; var { FilePicker } = ChromeUtils.importESModule('chrome://zotero/content/modules/filePicker.mjs');
Zotero_Preferences.General = { Zotero_Preferences.General = {
_openURLResolvers: null, _openURLResolvers: null,

View file

@ -1,7 +1,7 @@
import React from 'react'; import React from 'react';
import ReactDOM from 'react-dom'; import ReactDOM from 'react-dom';
import FilePicker from 'zotero/modules/filePicker'; var { FilePicker } = ChromeUtils.importESModule('chrome://zotero/content/modules/filePicker.mjs');
import VirtualizedTable from 'components/virtualized-table'; import VirtualizedTable from 'components/virtualized-table';
import { getCSSIcon } from 'components/icons'; import { getCSSIcon } from 'components/icons';

View file

@ -1,4 +1,4 @@
import FilePicker from 'zotero/modules/filePicker'; var { FilePicker } = ChromeUtils.importESModule('chrome://zotero/content/modules/filePicker.mjs');
(async function () { (async function () {
// Create schema // Create schema

View file

@ -23,7 +23,7 @@
***** END LICENSE BLOCK ***** ***** END LICENSE BLOCK *****
*/ */
import FilePicker from 'zotero/modules/filePicker'; var { FilePicker } = ChromeUtils.importESModule('chrome://zotero/content/modules/filePicker.mjs');
var Zotero_CSL_Editor = new function () { var Zotero_CSL_Editor = new function () {
let monaco, editor; let monaco, editor;

View file

@ -25,7 +25,7 @@
"use strict"; "use strict";
import FilePicker from 'zotero/modules/filePicker'; var { FilePicker } = ChromeUtils.importESModule('chrome://zotero/content/modules/filePicker.mjs');
Zotero.DataDirectory = { Zotero.DataDirectory = {
MIGRATION_MARKER: 'migrate-dir', MIGRATION_MARKER: 'migrate-dir',

View file

@ -25,7 +25,7 @@
Components.utils.import("resource://gre/modules/InlineSpellChecker.jsm"); Components.utils.import("resource://gre/modules/InlineSpellChecker.jsm");
import FilePicker from 'zotero/modules/filePicker'; var { FilePicker } = ChromeUtils.importESModule('chrome://zotero/content/modules/filePicker.mjs');
// Note: TinyMCE is automatically doing some meaningless corrections to // Note: TinyMCE is automatically doing some meaningless corrections to
// note-editor produced HTML. Which might result to more // note-editor produced HTML. Which might result to more

View file

@ -23,7 +23,7 @@
***** END LICENSE BLOCK ***** ***** END LICENSE BLOCK *****
*/ */
import FilePicker from 'zotero/modules/filePicker'; var { FilePicker } = ChromeUtils.importESModule('chrome://zotero/content/modules/filePicker.mjs');
const { BlockingObserver } = ChromeUtils.import("chrome://zotero/content/BlockingObserver.jsm"); const { BlockingObserver } = ChromeUtils.import("chrome://zotero/content/BlockingObserver.jsm");

View file

@ -23,7 +23,7 @@
***** END LICENSE BLOCK ***** ***** END LICENSE BLOCK *****
*/ */
import FilePicker from 'zotero/modules/filePicker'; var { FilePicker } = ChromeUtils.importESModule('chrome://zotero/content/modules/filePicker.mjs');
/* /*
* This object contains the various functions for the interface * This object contains the various functions for the interface

View file

@ -104,9 +104,6 @@ var require = (function() {
'containers/': 'chrome://zotero/content/containers/', 'containers/': 'chrome://zotero/content/containers/',
'components/': 'chrome://zotero/content/components/', 'components/': 'chrome://zotero/content/components/',
'zotero/': 'chrome://zotero/content/', 'zotero/': 'chrome://zotero/content/',
// TEMP until plugins updated
// TODO: Possible to show a deprecation warning?
'zotero/filePicker': 'chrome://zotero/content/modules/filePicker',
}, },
globals globals
}); });