Index: chrome/browser/resources/pdf/pdf_scripting_api.js |
diff --git a/chrome/browser/resources/pdf/pdf_scripting_api.js b/chrome/browser/resources/pdf/pdf_scripting_api.js |
index 712e390207e2cb443611cab2cfcf26eddbfb633b..102130e1959c1cbc68faddce2d66bdd6ab9a9ada 100644 |
--- a/chrome/browser/resources/pdf/pdf_scripting_api.js |
+++ b/chrome/browser/resources/pdf/pdf_scripting_api.js |
@@ -9,7 +9,7 @@ |
*/ |
function DeserializeKeyEvent(dict) { |
var e = document.createEvent('Event'); |
- e.initEvent('keydown'); |
+ e.initEvent('keydown', true, true); |
e.keyCode = dict.keyCode; |
e.shiftKey = dict.shiftKey; |
e.ctrlKey = dict.ctrlKey; |
@@ -37,6 +37,7 @@ function SerializeKeyEvent(event) { |
/** |
* An enum containing a value specifying whether the PDF is currently loading, |
* has finished loading or failed to load. |
+ * @enum {string} |
*/ |
var LoadState = { |
LOADING: 'loading', |
@@ -49,6 +50,7 @@ var LoadState = { |
* the PDF viewer so that it can be customized by things like print preview. |
* @param {Window} window the window of the page containing the pdf viewer. |
* @param {Object} plugin the plugin element containing the pdf viewer. |
+ * @constructor |
*/ |
function PDFScriptingAPI(window, plugin) { |
this.loadState_ = LoadState.LOADING; |
@@ -64,21 +66,33 @@ function PDFScriptingAPI(window, plugin) { |
} |
switch (event.data.type) { |
case 'viewport': |
+ /** |
+ * @type {{ |
+ * pageX: number, |
+ * pageY: number, |
+ * pageWidth: number, |
+ * viewportWidth: number, |
+ * viewportHeight: number |
+ * }} |
+ */ |
+ var viewportData = event.data; |
if (this.viewportChangedCallback_) |
- this.viewportChangedCallback_(event.data.pageX, |
- event.data.pageY, |
- event.data.pageWidth, |
- event.data.viewportWidth, |
- event.data.viewportHeight); |
+ this.viewportChangedCallback_(viewportData.pageX, |
+ viewportData.pageY, |
+ viewportData.pageWidth, |
+ viewportData.viewportWidth, |
+ viewportData.viewportHeight); |
break; |
case 'documentLoaded': |
- this.loadState_ = event.data.load_state; |
+ var data = /** @type {{load_state: LoadState}} */ (event.data); |
+ this.loadState_ = data.load_state; |
if (this.loadCallback_) |
this.loadCallback_(this.loadState_ == LoadState.SUCCESS); |
break; |
case 'getSelectedTextReply': |
+ var data = /** @type {{selectedText: string}} */ (event.data); |
if (this.selectedTextCallback_) { |
- this.selectedTextCallback_(event.data.selectedText); |
+ this.selectedTextCallback_(data.selectedText); |
this.selectedTextCallback_ = null; |
} |
break; |
@@ -240,8 +254,9 @@ PDFScriptingAPI.prototype = { |
* @return {HTMLIFrameElement} the iframe element containing the PDF viewer. |
*/ |
function PDFCreateOutOfProcessPlugin(src) { |
- var client = new PDFScriptingAPI(window); |
- var iframe = window.document.createElement('iframe'); |
+ var client = new PDFScriptingAPI(window, null); |
+ var iframe = assertInstanceof(window.document.createElement('iframe'), |
+ HTMLIFrameElement); |
iframe.setAttribute('src', 'pdf_preview.html?' + src); |
// Prevent the frame from being tab-focusable. |
iframe.setAttribute('tabindex', '-1'); |