Chromium Code Reviews| 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 hasParams = originalUrl.search('#'); | |
|
Lei Zhang
2014/08/18 23:53:32
hasParams -> paramIndex?
Nikhil
2014/08/19 05:28:08
Done.
| |
| 275 if (hasParams == -1) | |
| 276 return; | |
| 277 | |
| 278 var paramTokens = originalUrl.substring(hasParams + 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); | |
|
Lei Zhang
2014/08/18 23:53:32
The current instance.cc code skips this if the pag
Nikhil
2014/08/19 05:28:08
Please let me know how do you think this should be
| |
| 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 |