1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-19 06:38:07 +02:00

[Firefox] Generate a PDF.js default-prefs file that can be used directly in mozilla-central (bug 1905864)

This commit is contained in:
Jonas Jenwald 2022-07-22 11:56:20 +02:00
parent 75129fd61a
commit ecb39a75ed
3 changed files with 21 additions and 63 deletions

View file

@ -1,22 +0,0 @@
{
// Note: The root .eslintrc file will define the base rules,
// but mozilla/recommended will override them for the rules it sets. Finally,
// the rules in this file will take precedence.
"extends": [
"plugin:mozilla/recommended",
],
"plugins": [
"mozilla"
],
"rules": {
// Other rules mozilla/recommended hasn't enabled yet.
"no-shadow": "error",
"arrow-body-style": ["error", "as-needed"],
"arrow-parens": ["error", "always"],
"constructor-super": "error",
"no-confusing-arrow": "error",
"no-useless-constructor": "error",
},
}

View file

@ -1,18 +0,0 @@
/* Copyright 2018 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.
*/
export const PdfJsDefaultPreferences = Object.freeze(
PDFJSDev.eval("DEFAULT_PREFERENCES")
);

View file

@ -53,7 +53,6 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url));
const BUILD_DIR = "build/";
const L10N_DIR = "l10n/";
const TEST_DIR = "test/";
const EXTENSION_SRC_DIR = "extensions/";
const BASELINE_DIR = BUILD_DIR + "baseline/";
const MOZCENTRAL_BASELINE_DIR = BUILD_DIR + "mozcentral.baseline/";
@ -1278,26 +1277,31 @@ gulp.task(
)
);
function preprocessDefaultPreferences(content) {
function createDefaultPrefsFile() {
const defaultFileName = "PdfJsDefaultPrefs.js",
overrideFileName = "PdfJsOverridePrefs.js";
const licenseHeader = fs.readFileSync("./src/license_header.js").toString();
const MODIFICATION_WARNING =
"//\n// THIS FILE IS GENERATED AUTOMATICALLY, DO NOT EDIT MANUALLY!\n//\n";
"// THIS FILE IS GENERATED AUTOMATICALLY, DO NOT EDIT MANUALLY!\n//\n" +
`// Any overrides should be placed in \`${overrideFileName}\`.\n`;
const bundleDefines = {
...DEFINES,
DEFAULT_PREFERENCES: getDefaultPreferences("mozcentral/"),
};
const prefs = getDefaultPreferences("mozcentral/");
const buf = [];
content = preprocessPDFJSCode(
{
rootPath: __dirname,
defines: bundleDefines,
},
content
);
for (const name in prefs) {
let value = prefs[name];
return licenseHeader + "\n" + MODIFICATION_WARNING + "\n" + content + "\n";
if (typeof value === "string") {
value = `"${value}"`;
}
buf.push(`pref("pdfjs.${name}", ${value});`);
}
buf.sort();
buf.unshift(licenseHeader, MODIFICATION_WARNING);
buf.push(`\n#include ${overrideFileName}\n`);
return createStringSource(defaultFileName, buf.join("\n"));
}
function replaceMozcentralCSS() {
@ -1325,8 +1329,7 @@ gulp.task(
MOZCENTRAL_EXTENSION_DIR = MOZCENTRAL_DIR + "browser/extensions/pdfjs/",
MOZCENTRAL_CONTENT_DIR = MOZCENTRAL_EXTENSION_DIR + "content/",
MOZCENTRAL_L10N_DIR =
MOZCENTRAL_DIR + "browser/locales/en-US/pdfviewer/",
FIREFOX_CONTENT_DIR = EXTENSION_SRC_DIR + "/firefox/content/";
MOZCENTRAL_DIR + "browser/locales/en-US/pdfviewer/";
const MOZCENTRAL_WEB_FILES = [
...COMMON_WEB_FILES,
@ -1401,12 +1404,7 @@ gulp.task(
gulp
.src("LICENSE", { encoding: false })
.pipe(gulp.dest(MOZCENTRAL_EXTENSION_DIR)),
gulp
.src(FIREFOX_CONTENT_DIR + "PdfJsDefaultPreferences.sys.mjs", {
encoding: false,
})
.pipe(transform("utf8", preprocessDefaultPreferences))
.pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR)),
createDefaultPrefsFile().pipe(gulp.dest(MOZCENTRAL_EXTENSION_DIR)),
]);
}
)