Commit 1013fd6e authored by dpapad's avatar dpapad Committed by Commit Bot

PDF Viewer: Register several listeners declaratively.

Previously the code was imperatively registering such listeners on
|document.body| which was unnecessary. Moreover, adding meaningful
type checking for such listeners, since previously they were lacking
type info.

Bug: None
Change-Id: I1041f0becf89d1f88b03a1ad2dc9ec9e85a99e4c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2304956
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Auto-Submit: dpapad <dpapad@chromium.org>
Reviewed-by: default avatarRebekah Potter <rbpotter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#789722}
parent 427a1e9c
......@@ -34,6 +34,10 @@
ink-controller="[[inkController_]]"
pdf-annotations-enabled="[[pdfAnnotationsEnabled_]]"
</if>
on-change-page-and-xy="onChangePageAndXy_"
on-change-page="onChangePage_"
on-dropdown-opened="onDropdownOpened_"
on-navigate="onNavigate_"
on-save="onToolbarSave_" on-print="onPrint_"
<if expr="chromeos">
on-annotation-mode-toggled="onAnnotationModeToggled_"
......@@ -55,6 +59,8 @@
ink-controller="[[inkController_]]"
pdf-annotations-enabled="[[pdfAnnotationsEnabled_]]"
</if>
on-change-page="onChangePage_"
on-dropdown-opened="onDropdownOpened_"
on-fit-to-changed="onFitToChanged" on-zoom-in="onZoomIn"
on-zoom-out="onZoomOut" on-rotate-left="rotateCounterclockwise"
<if expr="chromeos">
......
......@@ -318,33 +318,6 @@ export class PDFViewerElement extends PDFViewerBaseElement {
this.getToolbar_().hidden = false;
}
document.body.addEventListener('change-page', e => {
this.viewport.goToPage(e.detail.page);
if (e.detail.origin === 'bookmark') {
PDFMetrics.record(PDFMetrics.UserAction.FOLLOW_BOOKMARK);
} else if (e.detail.origin === 'pageselector') {
PDFMetrics.record(PDFMetrics.UserAction.PAGE_SELECTOR_NAVIGATE);
}
});
document.body.addEventListener('change-page-and-xy', e => {
const point = this.viewport.convertPageToScreen(e.detail.page, e.detail);
this.goToPageAndXY_(e.detail.origin, e.detail.page, point);
});
document.body.addEventListener('navigate', e => {
const disposition = e.detail.newtab ?
PdfNavigator.WindowOpenDisposition.NEW_BACKGROUND_TAB :
PdfNavigator.WindowOpenDisposition.CURRENT_TAB;
this.navigator_.navigate(e.detail.uri, disposition);
});
document.body.addEventListener('dropdown-opened', e => {
if (e.detail === 'bookmarks') {
PDFMetrics.record(PDFMetrics.UserAction.OPEN_BOOKMARKS_PANEL);
}
});
if (!this.pdfViewerUpdateEnabled_) {
this.toolbarManager_ = new ToolbarManager(
window, this.getToolbar_(), this.getZoomToolbar_());
......@@ -835,6 +808,50 @@ export class PDFViewerElement extends PDFViewerBaseElement {
this.save_(e.detail);
}
/**
* @param {!CustomEvent<!{page: number, origin: string}>} e
* @private
*/
onChangePage_(e) {
this.viewport.goToPage(e.detail.page);
if (e.detail.origin === 'bookmark') {
PDFMetrics.record(PDFMetrics.UserAction.FOLLOW_BOOKMARK);
} else if (e.detail.origin === 'pageselector') {
PDFMetrics.record(PDFMetrics.UserAction.PAGE_SELECTOR_NAVIGATE);
}
}
/**
* @param {!CustomEvent<!{
* page: number, origin: string, x: number, y: number}>} e
* @private
*/
onChangePageAndXy_(e) {
const point = this.viewport.convertPageToScreen(e.detail.page, e.detail);
this.goToPageAndXY_(e.detail.origin, e.detail.page, point);
}
/**
* @param {!CustomEvent<string>} e
* @private
*/
onDropdownOpened_(e) {
if (e.detail === 'bookmarks') {
PDFMetrics.record(PDFMetrics.UserAction.OPEN_BOOKMARKS_PANEL);
}
}
/**
* @param {!CustomEvent<!{newtab: boolean, uri: string}>} e
* @private
*/
onNavigate_(e) {
const disposition = e.detail.newtab ?
PdfNavigator.WindowOpenDisposition.NEW_BACKGROUND_TAB :
PdfNavigator.WindowOpenDisposition.CURRENT_TAB;
this.navigator_.navigate(e.detail.uri, disposition);
}
/**
* Saves the current PDF document to disk.
* @param {SaveRequestType} requestType The type of save request.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment