e98b9b019a
Currently the `web/app.js` file pulls in various build-specific dependencies, via the use of import maps, and those files in turn import from `web/app.js` thus creating undesirable import cycles. To avoid this we instead pass in a `PDFViewerApplication`-reference, immediately after it's been created, to the relevant code. Note that we use an ESLint plugin rule, see `import/no-cycle`, that is normally able to catch import cycles. However, in this case import maps are involved which is why this wasn't caught.
51 lines
1.6 KiB
JavaScript
51 lines
1.6 KiB
JavaScript
/* Copyright 2017 Mozilla Foundation
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
import { AppOptions } from "./app_options.js";
|
|
import { BaseExternalServices } from "./external_services.js";
|
|
import { BasePreferences } from "./preferences.js";
|
|
import { GenericL10n } from "./genericl10n.js";
|
|
import { GenericScripting } from "./generic_scripting.js";
|
|
|
|
if (typeof PDFJSDev !== "undefined" && !PDFJSDev.test("GENERIC")) {
|
|
throw new Error(
|
|
'Module "pdfjs-web/genericcom" shall not be used outside GENERIC build.'
|
|
);
|
|
}
|
|
|
|
function initCom(app) {}
|
|
|
|
class Preferences extends BasePreferences {
|
|
async _writeToStorage(prefObj) {
|
|
localStorage.setItem("pdfjs.preferences", JSON.stringify(prefObj));
|
|
}
|
|
|
|
async _readFromStorage(prefObj) {
|
|
return { prefs: JSON.parse(localStorage.getItem("pdfjs.preferences")) };
|
|
}
|
|
}
|
|
|
|
class ExternalServices extends BaseExternalServices {
|
|
async createL10n() {
|
|
return new GenericL10n(AppOptions.get("locale"));
|
|
}
|
|
|
|
createScripting() {
|
|
return new GenericScripting(AppOptions.get("sandboxBundleSrc"));
|
|
}
|
|
}
|
|
|
|
export { ExternalServices, initCom, Preferences };
|