Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Side by Side Diff: chrome/browser/resources/pdf/pdf.js

Issue 476733003: OOP PDF - Add support for "page" open pdf parameter (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | pdf/out_of_process_instance.cc » ('j') | pdf/out_of_process_instance.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 this.sendScriptingMessage_({ 288 this.sendScriptingMessage_({
289 type: 'documentLoaded' 289 type: 'documentLoaded'
290 }); 290 });
291 if (this.lastViewportPosition_) 291 if (this.lastViewportPosition_)
292 this.viewport_.position = this.lastViewportPosition_; 292 this.viewport_.position = this.lastViewportPosition_;
293 } 293 }
294 }, 294 },
295 295
296 /** 296 /**
297 * @private 297 * @private
298 * Handle page param of open PDF parameters.
299 * @param {number} page value.
300 */
301 handlePageParam_: function(value) {
302 if (value > 0) {
303 // value is 1-based.
304 this.viewport_.goToPage(value - 1);
305 }
306 },
raymes 2014/08/15 01:07:18 I would suggest just inlining this function. viewp
Nikhil 2014/08/16 10:24:01 Done.
307
308 /**
309 * @private
310 * Handle open PDF parameters.
311 */
312 handleOpenPDFParams_: function() {
313 var originalUrl = this.streamDetails.originalUrl;
314 var hasParams = originalUrl.search('#');
315 if (hasParams == -1)
316 return;
317
318 var paramTokens = originalUrl.substring(hasParams + 1).split('&');
319 // Handle the case of http://foo.com/bar#NAMEDDEST. This is not explicitly
320 // mentioned except by example in the Adobe "PDF Open Parameters" document.
321 if ((paramTokens.length == 1) && (paramTokens[0].search('=') == -1)) {
322 // FIXME: Send message for GetNamedDestinationPage();
raymes 2014/08/15 01:07:18 Are you going to add support for this soon? If not
Nikhil 2014/08/16 10:24:01 Yes, I'm planning to add support for this soon in
raymes 2014/08/18 00:39:34 I had a look at the API that pdfium exposes and it
Nikhil 2014/08/18 04:53:32 I'll check it further.
323 return;
324 }
325
326 var paramsDictionary = {};
327 for (var i = 0; i < paramTokens.length; ++i) {
328 var keyValueSplit = paramTokens[i].split('=');
329 if (keyValueSplit.length != 2)
330 continue;
331 paramsDictionary[keyValueSplit[0]] = keyValueSplit[1];
332 }
333
334 // Order is important as later actions can override the effects
335 // of previous actions.
336 if ('page' in paramsDictionary)
337 this.handlePageParam_(paramsDictionary['page']);
338 },
339
340 /**
341 * @private
298 * An event handler for handling password-submitted events. These are fired 342 * An event handler for handling password-submitted events. These are fired
299 * when an event is entered into the password screen. 343 * when an event is entered into the password screen.
300 * @param {Object} event a password-submitted event. 344 * @param {Object} event a password-submitted event.
301 */ 345 */
302 onPasswordSubmitted_: function(event) { 346 onPasswordSubmitted_: function(event) {
303 this.plugin_.postMessage({ 347 this.plugin_.postMessage({
304 type: 'getPasswordComplete', 348 type: 'getPasswordComplete',
305 password: event.detail.password 349 password: event.detail.password
306 }); 350 });
307 }, 351 },
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 this.viewport_.position = position; 409 this.viewport_.position = position;
366 break; 410 break;
367 case 'setTranslatedStrings': 411 case 'setTranslatedStrings':
368 this.passwordScreen_.text = message.data.getPasswordString; 412 this.passwordScreen_.text = message.data.getPasswordString;
369 this.progressBar_.text = message.data.loadingString; 413 this.progressBar_.text = message.data.loadingString;
370 this.errorScreen_.text = message.data.loadFailedString; 414 this.errorScreen_.text = message.data.loadFailedString;
371 break; 415 break;
372 case 'cancelStreamUrl': 416 case 'cancelStreamUrl':
373 chrome.streamsPrivate.abort(this.streamDetails.streamUrl); 417 chrome.streamsPrivate.abort(this.streamDetails.streamUrl);
374 break; 418 break;
419 case 'openPDFParams':
420 this.handleOpenPDFParams_();
raymes 2014/08/15 01:07:17 Rather than calling this here, we can get rid of t
Nikhil 2014/08/16 10:24:01 Done.
421 break;
375 } 422 }
376 }, 423 },
377 424
378 /** 425 /**
379 * @private 426 * @private
380 * A callback that's called before the zoom changes. Notify the plugin to stop 427 * A callback that's called before the zoom changes. Notify the plugin to stop
381 * reacting to scroll events while zoom is taking place to avoid flickering. 428 * reacting to scroll events while zoom is taking place to avoid flickering.
382 */ 429 */
383 beforeZoom_: function() { 430 beforeZoom_: function() {
384 this.plugin_.postMessage({ 431 this.plugin_.postMessage({
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
539 586
540 /** 587 /**
541 * @type {Viewport} the viewport of the PDF viewer. 588 * @type {Viewport} the viewport of the PDF viewer.
542 */ 589 */
543 get viewport() { 590 get viewport() {
544 return this.viewport_; 591 return this.viewport_;
545 } 592 }
546 }; 593 };
547 594
548 var viewer = new PDFViewer(); 595 var viewer = new PDFViewer();
OLDNEW
« no previous file with comments | « no previous file | pdf/out_of_process_instance.cc » ('j') | pdf/out_of_process_instance.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698