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

Unified Diff: chrome/browser/resources/pdf/pdf.js

Issue 923063002: Sample Patch. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/resources/pdf/open_pdf_params_parser.js ('k') | pdf/out_of_process_instance.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/pdf/pdf.js
diff --git a/chrome/browser/resources/pdf/pdf.js b/chrome/browser/resources/pdf/pdf.js
index 309886fde637a343d583d44f3d367064a374c317..1d78c3ec86f121fcab88e43a30080b130d83dffe 100644
--- a/chrome/browser/resources/pdf/pdf.js
+++ b/chrome/browser/resources/pdf/pdf.js
@@ -190,7 +190,8 @@ function PDFViewer(streamDetails) {
}
// Parse open pdf parameters.
- this.paramsParser_ = new OpenPDFParamsParser();
+ this.paramsParser_ =
+ new OpenPDFParamsParser(this.getNamedDestination_.bind(this));
this.navigator_ = new Navigator(this.streamDetails_.originalUrl,
this.viewport_, this.paramsParser_, onNavigateInCurrentTab,
onNavigateInNewTab);
@@ -350,13 +351,29 @@ PDFViewer.prototype = {
* @private
* Notify the plugin to print.
*/
- print_: function() { this.plugin_.postMessage({type: 'print'}); },
+ print_: function() {
+ this.plugin_.postMessage({
+ type: 'print'});
+ },
/**
* @private
* Notify the plugin to save.
*/
- save_: function() { this.plugin_.postMessage({type: 'save'}); },
+ save_: function() {
+ this.plugin_.postMessage({
+ type: 'save'});
+ },
+
+ /**
+ * Callback to fetch namedDestination from plugin.
+ */
+ getNamedDestination_: function(name) {
+ this.plugin_.postMessage({
+ type: 'getNamedDestination',
+ namedDestination: name
+ });
+ },
/**
* @private
@@ -365,20 +382,20 @@ PDFViewer.prototype = {
* important as later actions can override the effects of previous actions.
*/
handleURLParams_: function() {
- var urlParams =
- this.paramsParser_.getViewportFromUrlParams(
- this.streamDetails_.originalUrl);
- if (urlParams.page)
- this.viewport_.goToPage(urlParams.page);
- if (urlParams.position) {
- // Make sure we don't cancel effect of page parameter.
- this.viewport_.position = {
- x: this.viewport_.position.x + urlParams.position.x,
- y: this.viewport_.position.y + urlParams.position.y
- };
- }
- if (urlParams.zoom)
- this.viewport_.setZoom(urlParams.zoom);
+ this.parmsParser_.getViewportFromUrlParams(
+ this.streamDetails_.originalUrl, function(initialViewport) {
+ if (initialViewport.page != undefined)
+ this.viewport_.goToPage(initialViewport.page);
+ if (initialViewport.position) {
+ // Make sure we don't cancel effect of page parameter.
+ this.viewport_.position = {
+ x: this.viewport_.position.x + initialViewport.position.x,
+ y: this.viewport_.position.y + initialViewport.position.y
+ };
+ }
+ if (initialViewport.zoom)
+ this.viewport_.setZoom(initialViewport.zoom);
+ }.bind(this));
},
/**
@@ -486,9 +503,6 @@ PDFViewer.prototype = {
else
this.navigator_.navigate(message.data.url, message.data.newTab);
break;
- case 'setNamedDestinations':
- this.paramsParser_.namedDestinations = message.data.namedDestinations;
- break;
case 'setScrollPosition':
var position = this.viewport_.position;
if (message.data.x !== undefined)
@@ -519,6 +533,10 @@ PDFViewer.prototype = {
case 'setIsSelecting':
this.viewportScroller_.setEnableScrolling(message.data.isSelecting);
break;
+ case 'getNamedDestinationReply':
+ this.paramsParser_.onNamedDestinationReceived(
+ message.data.namedDestinationPageNumber);
+ break;
}
},
« no previous file with comments | « chrome/browser/resources/pdf/open_pdf_params_parser.js ('k') | pdf/out_of_process_instance.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698