mirror of
https://github.com/zen-browser/pdf.js.git
synced 2025-07-08 17:30:09 +02:00
Inline single-line event handlers in the web/app.js
file
We have a fair number of (effectively) single-line event handlers in the `web/app.js` file, which leads to unnecessarily verbose code. These can, without affecting readability too much, be replaced either by: - Using `bind` for the simplest cases. - Using arrow-functions for the remaining ones. Note that this is possible since we started removing event listeners with `AbortSignal`, which means that we no longer need to keep a reference to the event handler functions to be able to remove them. Given that the old event handler functions use fairly long function names, and the way that they access `PDFViewerApplication` (given their scope), they impact the overall code-size unnecessarily. *Note:* This patch reduces the size of the `gulp mozcentral` output by `~3.7` kilo-bytes, which isn't a lot but still cannot hurt.
This commit is contained in:
parent
501da85222
commit
89f3a26c2f
1 changed files with 60 additions and 115 deletions
175
web/app.js
175
web/app.js
|
@ -1886,10 +1886,9 @@ const PDFViewerApplication = {
|
||||||
},
|
},
|
||||||
|
|
||||||
triggerPrinting() {
|
triggerPrinting() {
|
||||||
if (!this.supportsPrinting) {
|
if (this.supportsPrinting) {
|
||||||
return;
|
|
||||||
}
|
|
||||||
window.print();
|
window.print();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
bindEvents() {
|
bindEvents() {
|
||||||
|
@ -1900,6 +1899,10 @@ const PDFViewerApplication = {
|
||||||
|
|
||||||
const {
|
const {
|
||||||
eventBus,
|
eventBus,
|
||||||
|
externalServices,
|
||||||
|
pdfDocumentProperties,
|
||||||
|
pdfViewer,
|
||||||
|
preferences,
|
||||||
_eventBusAbortController: { signal },
|
_eventBusAbortController: { signal },
|
||||||
} = this;
|
} = this;
|
||||||
|
|
||||||
|
@ -1916,44 +1919,60 @@ const PDFViewerApplication = {
|
||||||
eventBus._on("sidebarviewchanged", webViewerSidebarViewChanged, { signal });
|
eventBus._on("sidebarviewchanged", webViewerSidebarViewChanged, { signal });
|
||||||
eventBus._on("pagemode", webViewerPageMode, { signal });
|
eventBus._on("pagemode", webViewerPageMode, { signal });
|
||||||
eventBus._on("namedaction", webViewerNamedAction, { signal });
|
eventBus._on("namedaction", webViewerNamedAction, { signal });
|
||||||
eventBus._on("presentationmodechanged", webViewerPresentationModeChanged, {
|
eventBus._on(
|
||||||
|
"presentationmodechanged",
|
||||||
|
evt => (pdfViewer.presentationModeState = evt.state),
|
||||||
|
{ signal }
|
||||||
|
);
|
||||||
|
eventBus._on("presentationmode", this.requestPresentationMode.bind(this), {
|
||||||
signal,
|
signal,
|
||||||
});
|
});
|
||||||
eventBus._on("presentationmode", webViewerPresentationMode, { signal });
|
|
||||||
eventBus._on(
|
eventBus._on(
|
||||||
"switchannotationeditormode",
|
"switchannotationeditormode",
|
||||||
webViewerSwitchAnnotationEditorMode,
|
evt => (pdfViewer.annotationEditorMode = evt),
|
||||||
{ signal }
|
{ signal }
|
||||||
);
|
);
|
||||||
eventBus._on(
|
eventBus._on(
|
||||||
"switchannotationeditorparams",
|
"switchannotationeditorparams",
|
||||||
webViewerSwitchAnnotationEditorParams,
|
evt => (pdfViewer.annotationEditorParams = evt),
|
||||||
{ signal }
|
{ signal }
|
||||||
);
|
);
|
||||||
eventBus._on("print", webViewerPrint, { signal });
|
eventBus._on("print", this.triggerPrinting.bind(this), { signal });
|
||||||
eventBus._on("download", webViewerDownload, { signal });
|
eventBus._on("download", this.downloadOrSave.bind(this), { signal });
|
||||||
eventBus._on("firstpage", webViewerFirstPage, { signal });
|
eventBus._on("firstpage", () => (this.page = 1), { signal });
|
||||||
eventBus._on("lastpage", webViewerLastPage, { signal });
|
eventBus._on("lastpage", () => (this.page = this.pagesCount), { signal });
|
||||||
eventBus._on("nextpage", webViewerNextPage, { signal });
|
eventBus._on("nextpage", () => pdfViewer.nextPage(), { signal });
|
||||||
eventBus._on("previouspage", webViewerPreviousPage, { signal });
|
eventBus._on("previouspage", () => pdfViewer.previousPage(), { signal });
|
||||||
eventBus._on("zoomin", webViewerZoomIn, { signal });
|
eventBus._on("zoomin", this.zoomIn.bind(this), { signal });
|
||||||
eventBus._on("zoomout", webViewerZoomOut, { signal });
|
eventBus._on("zoomout", this.zoomOut.bind(this), { signal });
|
||||||
eventBus._on("zoomreset", webViewerZoomReset, { signal });
|
eventBus._on("zoomreset", this.zoomReset.bind(this), { signal });
|
||||||
eventBus._on("pagenumberchanged", webViewerPageNumberChanged, { signal });
|
eventBus._on("pagenumberchanged", webViewerPageNumberChanged, { signal });
|
||||||
eventBus._on("scalechanged", webViewerScaleChanged, { signal });
|
eventBus._on(
|
||||||
eventBus._on("rotatecw", webViewerRotateCw, { signal });
|
"scalechanged",
|
||||||
eventBus._on("rotateccw", webViewerRotateCcw, { signal });
|
evt => (pdfViewer.currentScaleValue = evt.value),
|
||||||
eventBus._on("optionalcontentconfig", webViewerOptionalContentConfig, {
|
{ signal }
|
||||||
|
);
|
||||||
|
eventBus._on("rotatecw", this.rotatePages.bind(this, 90), { signal });
|
||||||
|
eventBus._on("rotateccw", this.rotatePages.bind(this, -90), { signal });
|
||||||
|
eventBus._on(
|
||||||
|
"optionalcontentconfig",
|
||||||
|
evt => (pdfViewer.optionalContentConfigPromise = evt.promise),
|
||||||
|
{ signal }
|
||||||
|
);
|
||||||
|
eventBus._on("switchscrollmode", evt => (pdfViewer.scrollMode = evt.mode), {
|
||||||
signal,
|
signal,
|
||||||
});
|
});
|
||||||
eventBus._on("switchscrollmode", webViewerSwitchScrollMode, { signal });
|
|
||||||
eventBus._on("scrollmodechanged", webViewerScrollModeChanged, { signal });
|
eventBus._on("scrollmodechanged", webViewerScrollModeChanged, { signal });
|
||||||
eventBus._on("switchspreadmode", webViewerSwitchSpreadMode, { signal });
|
eventBus._on("switchspreadmode", evt => (pdfViewer.spreadMode = evt.mode), {
|
||||||
|
signal,
|
||||||
|
});
|
||||||
eventBus._on("spreadmodechanged", webViewerSpreadModeChanged, { signal });
|
eventBus._on("spreadmodechanged", webViewerSpreadModeChanged, { signal });
|
||||||
eventBus._on("imagealttextsettings", webViewerImageAltTextSettings, {
|
eventBus._on("imagealttextsettings", webViewerImageAltTextSettings, {
|
||||||
signal,
|
signal,
|
||||||
});
|
});
|
||||||
eventBus._on("documentproperties", webViewerDocumentProperties, { signal });
|
eventBus._on("documentproperties", () => pdfDocumentProperties?.open(), {
|
||||||
|
signal,
|
||||||
|
});
|
||||||
eventBus._on("findfromurlhash", webViewerFindFromUrlHash, { signal });
|
eventBus._on("findfromurlhash", webViewerFindFromUrlHash, { signal });
|
||||||
eventBus._on("updatefindmatchescount", webViewerUpdateFindMatchesCount, {
|
eventBus._on("updatefindmatchescount", webViewerUpdateFindMatchesCount, {
|
||||||
signal,
|
signal,
|
||||||
|
@ -1969,16 +1988,24 @@ const PDFViewerApplication = {
|
||||||
if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL")) {
|
if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL")) {
|
||||||
eventBus._on(
|
eventBus._on(
|
||||||
"annotationeditorstateschanged",
|
"annotationeditorstateschanged",
|
||||||
webViewerAnnotationEditorStatesChanged,
|
evt => externalServices.updateEditorStates(evt),
|
||||||
|
{ signal }
|
||||||
|
);
|
||||||
|
eventBus._on(
|
||||||
|
"reporttelemetry",
|
||||||
|
evt => externalServices.reportTelemetry(evt.details),
|
||||||
{ signal }
|
{ signal }
|
||||||
);
|
);
|
||||||
eventBus._on("reporttelemetry", webViewerReportTelemetry, { signal });
|
|
||||||
}
|
}
|
||||||
if (
|
if (
|
||||||
typeof PDFJSDev === "undefined" ||
|
typeof PDFJSDev === "undefined" ||
|
||||||
PDFJSDev.test("TESTING || MOZCENTRAL")
|
PDFJSDev.test("TESTING || MOZCENTRAL")
|
||||||
) {
|
) {
|
||||||
eventBus._on("setpreference", webViewerSetPreference, { signal });
|
eventBus._on(
|
||||||
|
"setpreference",
|
||||||
|
evt => preferences.set(evt.name, evt.value),
|
||||||
|
{ signal }
|
||||||
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -1991,12 +2018,13 @@ const PDFViewerApplication = {
|
||||||
const {
|
const {
|
||||||
eventBus,
|
eventBus,
|
||||||
appConfig: { mainContainer },
|
appConfig: { mainContainer },
|
||||||
|
pdfViewer,
|
||||||
_windowAbortController: { signal },
|
_windowAbortController: { signal },
|
||||||
} = this;
|
} = this;
|
||||||
|
|
||||||
function addWindowResolutionChange(evt = null) {
|
function addWindowResolutionChange(evt = null) {
|
||||||
if (evt) {
|
if (evt) {
|
||||||
webViewerResolutionChange(evt);
|
pdfViewer.refresh();
|
||||||
}
|
}
|
||||||
const mediaQueryList = window.matchMedia(
|
const mediaQueryList = window.matchMedia(
|
||||||
`(resolution: ${window.devicePixelRatio || 1}dppx)`
|
`(resolution: ${window.devicePixelRatio || 1}dppx)`
|
||||||
|
@ -2029,9 +2057,7 @@ const PDFViewerApplication = {
|
||||||
window.addEventListener("keyup", webViewerKeyUp, { signal });
|
window.addEventListener("keyup", webViewerKeyUp, { signal });
|
||||||
window.addEventListener(
|
window.addEventListener(
|
||||||
"resize",
|
"resize",
|
||||||
() => {
|
() => eventBus.dispatch("resize", { source: window }),
|
||||||
eventBus.dispatch("resize", { source: window });
|
|
||||||
},
|
|
||||||
{ signal }
|
{ signal }
|
||||||
);
|
);
|
||||||
window.addEventListener(
|
window.addEventListener(
|
||||||
|
@ -2046,24 +2072,20 @@ const PDFViewerApplication = {
|
||||||
);
|
);
|
||||||
window.addEventListener(
|
window.addEventListener(
|
||||||
"beforeprint",
|
"beforeprint",
|
||||||
() => {
|
() => eventBus.dispatch("beforeprint", { source: window }),
|
||||||
eventBus.dispatch("beforeprint", { source: window });
|
|
||||||
},
|
|
||||||
{ signal }
|
{ signal }
|
||||||
);
|
);
|
||||||
window.addEventListener(
|
window.addEventListener(
|
||||||
"afterprint",
|
"afterprint",
|
||||||
() => {
|
() => eventBus.dispatch("afterprint", { source: window }),
|
||||||
eventBus.dispatch("afterprint", { source: window });
|
|
||||||
},
|
|
||||||
{ signal }
|
{ signal }
|
||||||
);
|
);
|
||||||
window.addEventListener(
|
window.addEventListener(
|
||||||
"updatefromsandbox",
|
"updatefromsandbox",
|
||||||
event => {
|
evt => {
|
||||||
eventBus.dispatch("updatefromsandbox", {
|
eventBus.dispatch("updatefromsandbox", {
|
||||||
source: window,
|
source: window,
|
||||||
detail: event.detail,
|
detail: evt.detail,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
{ signal }
|
{ signal }
|
||||||
|
@ -2317,10 +2339,6 @@ function webViewerNamedAction(evt) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function webViewerPresentationModeChanged(evt) {
|
|
||||||
PDFViewerApplication.pdfViewer.presentationModeState = evt.state;
|
|
||||||
}
|
|
||||||
|
|
||||||
function webViewerSidebarViewChanged({ view }) {
|
function webViewerSidebarViewChanged({ view }) {
|
||||||
PDFViewerApplication.pdfRenderingQueue.isThumbnailViewEnabled =
|
PDFViewerApplication.pdfRenderingQueue.isThumbnailViewEnabled =
|
||||||
view === SidebarView.THUMBS;
|
view === SidebarView.THUMBS;
|
||||||
|
@ -2436,42 +2454,6 @@ if (typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")) {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function webViewerPresentationMode() {
|
|
||||||
PDFViewerApplication.requestPresentationMode();
|
|
||||||
}
|
|
||||||
function webViewerSwitchAnnotationEditorMode(evt) {
|
|
||||||
PDFViewerApplication.pdfViewer.annotationEditorMode = evt;
|
|
||||||
}
|
|
||||||
function webViewerSwitchAnnotationEditorParams(evt) {
|
|
||||||
PDFViewerApplication.pdfViewer.annotationEditorParams = evt;
|
|
||||||
}
|
|
||||||
function webViewerPrint() {
|
|
||||||
PDFViewerApplication.triggerPrinting();
|
|
||||||
}
|
|
||||||
function webViewerDownload() {
|
|
||||||
PDFViewerApplication.downloadOrSave();
|
|
||||||
}
|
|
||||||
function webViewerFirstPage() {
|
|
||||||
PDFViewerApplication.page = 1;
|
|
||||||
}
|
|
||||||
function webViewerLastPage() {
|
|
||||||
PDFViewerApplication.page = PDFViewerApplication.pagesCount;
|
|
||||||
}
|
|
||||||
function webViewerNextPage() {
|
|
||||||
PDFViewerApplication.pdfViewer.nextPage();
|
|
||||||
}
|
|
||||||
function webViewerPreviousPage() {
|
|
||||||
PDFViewerApplication.pdfViewer.previousPage();
|
|
||||||
}
|
|
||||||
function webViewerZoomIn() {
|
|
||||||
PDFViewerApplication.zoomIn();
|
|
||||||
}
|
|
||||||
function webViewerZoomOut() {
|
|
||||||
PDFViewerApplication.zoomOut();
|
|
||||||
}
|
|
||||||
function webViewerZoomReset() {
|
|
||||||
PDFViewerApplication.zoomReset();
|
|
||||||
}
|
|
||||||
function webViewerPageNumberChanged(evt) {
|
function webViewerPageNumberChanged(evt) {
|
||||||
const pdfViewer = PDFViewerApplication.pdfViewer;
|
const pdfViewer = PDFViewerApplication.pdfViewer;
|
||||||
// Note that for `<input type="number">` HTML elements, an empty string will
|
// Note that for `<input type="number">` HTML elements, an empty string will
|
||||||
|
@ -2492,27 +2474,6 @@ function webViewerPageNumberChanged(evt) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function webViewerScaleChanged(evt) {
|
|
||||||
PDFViewerApplication.pdfViewer.currentScaleValue = evt.value;
|
|
||||||
}
|
|
||||||
function webViewerRotateCw() {
|
|
||||||
PDFViewerApplication.rotatePages(90);
|
|
||||||
}
|
|
||||||
function webViewerRotateCcw() {
|
|
||||||
PDFViewerApplication.rotatePages(-90);
|
|
||||||
}
|
|
||||||
function webViewerOptionalContentConfig(evt) {
|
|
||||||
PDFViewerApplication.pdfViewer.optionalContentConfigPromise = evt.promise;
|
|
||||||
}
|
|
||||||
function webViewerSwitchScrollMode(evt) {
|
|
||||||
PDFViewerApplication.pdfViewer.scrollMode = evt.mode;
|
|
||||||
}
|
|
||||||
function webViewerSwitchSpreadMode(evt) {
|
|
||||||
PDFViewerApplication.pdfViewer.spreadMode = evt.mode;
|
|
||||||
}
|
|
||||||
function webViewerDocumentProperties() {
|
|
||||||
PDFViewerApplication.pdfDocumentProperties?.open();
|
|
||||||
}
|
|
||||||
|
|
||||||
function webViewerImageAltTextSettings() {
|
function webViewerImageAltTextSettings() {
|
||||||
PDFViewerApplication.imageAltTextSettings?.open({
|
PDFViewerApplication.imageAltTextSettings?.open({
|
||||||
|
@ -2599,10 +2560,6 @@ function webViewerPageChanging({ pageNumber, pageLabel }) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function webViewerResolutionChange(evt) {
|
|
||||||
PDFViewerApplication.pdfViewer.refresh();
|
|
||||||
}
|
|
||||||
|
|
||||||
function webViewerWheel(evt) {
|
function webViewerWheel(evt) {
|
||||||
const {
|
const {
|
||||||
pdfViewer,
|
pdfViewer,
|
||||||
|
@ -3204,16 +3161,4 @@ function beforeUnload(evt) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function webViewerAnnotationEditorStatesChanged(data) {
|
|
||||||
PDFViewerApplication.externalServices.updateEditorStates(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
function webViewerReportTelemetry({ details }) {
|
|
||||||
PDFViewerApplication.externalServices.reportTelemetry(details);
|
|
||||||
}
|
|
||||||
|
|
||||||
function webViewerSetPreference({ name, value }) {
|
|
||||||
PDFViewerApplication.preferences.set(name, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
export { PDFViewerApplication };
|
export { PDFViewerApplication };
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue