Commit feedc807 authored by dpapad's avatar dpapad Committed by Commit Bot

PDF Viewer: Enable type checking for main.js

This is in preparation of converting the remaining parts
of PDF Viewer to JS modules.

Fixed: 1011585
Change-Id: I904ec1b03268e9d11881f4055173bcea5c952326
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1842625
Commit-Queue: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: default avatarRebekah Potter <rbpotter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#708255}
parent 4812124d
......@@ -67,6 +67,9 @@ js_library("zoom_manager") {
}
js_library("metrics") {
deps = [
":pdf_fitting_type",
]
externs_list = [ "$externs_path/metrics_private.js" ]
}
......@@ -81,6 +84,7 @@ js_library("toolbar_manager") {
deps = [
"elements:viewer-pdf-toolbar",
"elements:viewer-zoom-toolbar",
"//ui/webui/resources/js:util",
]
}
......@@ -97,9 +101,12 @@ js_library("controller") {
js_library("pdf_viewer") {
deps = [
":controller",
":metrics",
":navigator",
":pdf_scripting_api",
":toolbar_manager",
":viewport",
":viewport_scroller",
"elements:viewer-bookmark",
"elements:viewer-error-screen",
"elements:viewer-page-indicator",
......@@ -112,12 +119,21 @@ js_library("pdf_viewer") {
externs_list = [ "$externs_path/resources_private.js" ]
}
js_library("main") {
deps = [
":browser_api",
":pdf_viewer",
]
}
js_type_check("pdf_resources") {
is_polymer3 = true
deps = [
":annotation_tool",
":browser_api",
":controller",
":gesture_detector",
":main",
":metrics",
":navigator",
":open_pdf_params_parser",
......
......@@ -161,8 +161,8 @@ BrowserApi.ZoomBehavior = {
/**
* Creates a BrowserApi for an extension running as a mime handler.
*
* @return {Promise<BrowserApi>} A promise to a BrowserApi instance constructed
* using the mimeHandlerPrivate API.
* @return {!Promise<!BrowserApi>} A promise to a BrowserApi instance
* constructed using the mimeHandlerPrivate API.
*/
function createBrowserApiForMimeHandlerView() {
return new Promise(function(resolve, reject) {
......@@ -198,8 +198,8 @@ function createBrowserApiForMimeHandlerView() {
/**
* Creates a BrowserApi instance for an extension not running as a mime handler.
*
* @return {Promise<BrowserApi>} A promise to a BrowserApi instance constructed
* from the URL.
* @return {!Promise<!BrowserApi>} A promise to a BrowserApi instance
* constructed from the URL.
*/
function createBrowserApiForPrintPreview() {
const url = window.location.search.substring(1);
......@@ -227,7 +227,7 @@ function createBrowserApiForPrintPreview() {
}
/**
* @return {Promise<BrowserApi>} A promise to a BrowserApi instance for the
* @return {!Promise<!BrowserApi>} A promise to a BrowserApi instance for the
* current environment.
*/
function createBrowserApi() {
......
......@@ -42,30 +42,29 @@ function handleScriptingMessage(message) {
/**
* Initialize the global PDFViewer and pass any outstanding messages to it.
*
* @param {Promise<BrowserApi>} browserApi A promise resolving to an API
* to the browser.
* @param {!BrowserApi} browserApi
*/
function initViewer(browserApi) {
// PDFViewer will handle any messages after it is created.
window.removeEventListener('message', handleScriptingMessage, false);
viewer = new PDFViewer(browserApi);
window.viewer = new PDFViewer(browserApi);
while (pendingMessages.length > 0) {
viewer.handleScriptingMessage(pendingMessages.shift());
window.viewer.handleScriptingMessage(pendingMessages.shift());
}
}
/**
* Determine if the content settings allow PDFs to execute javascript.
*
* @param {Promise<BrowserApi>} browserApi A promise resolving to an API
* to the browser.
* @param {!BrowserApi} browserApi
* @return {!Promise<!BrowserApi>}
*/
function configureJavaScriptContentSetting(browserApi) {
return new Promise((resolve, reject) => {
chrome.contentSettings.javascript.get(
{
'primaryUrl': browserApi.getStreamInfo().originalUrl,
'secondaryUrl': window.origin
'secondaryUrl': window.location.origin
},
(result) => {
browserApi.getStreamInfo().javascript = result.setting;
......@@ -89,7 +88,7 @@ function main() {
chain = chain.then(configureJavaScriptContentSetting);
}
chain = chain.then(initViewer);
chain.then(initViewer);
}
main();
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