OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 'use strict'; | 5 'use strict'; |
6 | 6 |
7 <include src="../../../../ui/webui/resources/js/util.js"> | 7 <include src="../../../../ui/webui/resources/js/util.js"> |
8 <include src="pdf_scripting_api.js"> | 8 <include src="pdf_scripting_api.js"> |
9 <include src="viewport.js"> | 9 <include src="viewport.js"> |
10 | 10 |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
258 * Notify the plugin to print. | 258 * Notify the plugin to print. |
259 */ | 259 */ |
260 print_: function() { | 260 print_: function() { |
261 this.plugin_.postMessage({ | 261 this.plugin_.postMessage({ |
262 type: 'print', | 262 type: 'print', |
263 }); | 263 }); |
264 }, | 264 }, |
265 | 265 |
266 /** | 266 /** |
267 * @private | 267 * @private |
| 268 * Handle open PDF parameters. These parameters are mentioned in the URL |
| 269 * and specify actions to be performed when opening PDF files. |
| 270 * See http://crbug.com/64309 for details. |
| 271 */ |
| 272 handleOpenPDFParams_: function() { |
| 273 var originalUrl = this.streamDetails.originalUrl; |
| 274 var paramIndex = originalUrl.search('#'); |
| 275 if (paramIndex == -1) |
| 276 return; |
| 277 |
| 278 var paramTokens = originalUrl.substring(paramIndex + 1).split('&'); |
| 279 var paramsDictionary = {}; |
| 280 for (var i = 0; i < paramTokens.length; ++i) { |
| 281 var keyValueSplit = paramTokens[i].split('='); |
| 282 if (keyValueSplit.length != 2) |
| 283 continue; |
| 284 paramsDictionary[keyValueSplit[0]] = keyValueSplit[1]; |
| 285 } |
| 286 |
| 287 // Order is important as later actions can override the effects |
| 288 // of previous actions. |
| 289 if ('page' in paramsDictionary) { |
| 290 // value is 1-based. |
| 291 this.viewport_.goToPage(paramsDictionary['page'] - 1); |
| 292 } |
| 293 }, |
| 294 |
| 295 /** |
| 296 * @private |
268 * Update the loading progress of the document in response to a progress | 297 * Update the loading progress of the document in response to a progress |
269 * message being received from the plugin. | 298 * message being received from the plugin. |
270 * @param {number} progress the progress as a percentage. | 299 * @param {number} progress the progress as a percentage. |
271 */ | 300 */ |
272 updateProgress_: function(progress) { | 301 updateProgress_: function(progress) { |
273 this.progressBar_.progress = progress; | 302 this.progressBar_.progress = progress; |
274 if (progress == -1) { | 303 if (progress == -1) { |
275 // Document load failed. | 304 // Document load failed. |
276 this.errorScreen_.style.visibility = 'visible'; | 305 this.errorScreen_.style.visibility = 'visible'; |
277 this.sizer_.style.display = 'none'; | 306 this.sizer_.style.display = 'none'; |
278 this.toolbar_.style.visibility = 'hidden'; | 307 this.toolbar_.style.visibility = 'hidden'; |
279 if (this.passwordScreen_.active) { | 308 if (this.passwordScreen_.active) { |
280 this.passwordScreen_.deny(); | 309 this.passwordScreen_.deny(); |
281 this.passwordScreen_.active = false; | 310 this.passwordScreen_.active = false; |
282 } | 311 } |
283 } else if (progress == 100) { | 312 } else if (progress == 100) { |
284 // Document load complete. | 313 // Document load complete. |
| 314 this.handleOpenPDFParams_(); |
285 this.loaded = true; | 315 this.loaded = true; |
286 var loadEvent = new Event('pdfload'); | 316 var loadEvent = new Event('pdfload'); |
287 window.dispatchEvent(loadEvent); | 317 window.dispatchEvent(loadEvent); |
288 this.sendScriptingMessage_({ | 318 this.sendScriptingMessage_({ |
289 type: 'documentLoaded' | 319 type: 'documentLoaded' |
290 }); | 320 }); |
291 if (this.lastViewportPosition_) | 321 if (this.lastViewportPosition_) |
292 this.viewport_.position = this.lastViewportPosition_; | 322 this.viewport_.position = this.lastViewportPosition_; |
293 } | 323 } |
294 }, | 324 }, |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
539 | 569 |
540 /** | 570 /** |
541 * @type {Viewport} the viewport of the PDF viewer. | 571 * @type {Viewport} the viewport of the PDF viewer. |
542 */ | 572 */ |
543 get viewport() { | 573 get viewport() { |
544 return this.viewport_; | 574 return this.viewport_; |
545 } | 575 } |
546 }; | 576 }; |
547 | 577 |
548 var viewer = new PDFViewer(); | 578 var viewer = new PDFViewer(); |
OLD | NEW |