Index: chrome/browser/resources/pdf/pdf.js |
diff --git a/chrome/browser/resources/pdf/pdf.js b/chrome/browser/resources/pdf/pdf.js |
index 6d6411e3e91363828d7dea1c2327fd0f9b7d4ba0..c8753e14a6207dca698cd16144c70cb57dba82f9 100644 |
--- a/chrome/browser/resources/pdf/pdf.js |
+++ b/chrome/browser/resources/pdf/pdf.js |
@@ -95,6 +95,16 @@ PDFViewer.MIN_TOOLBAR_OFFSET = 15; |
PDFViewer.MATERIAL_TOOLBAR_HEIGHT = 56; |
/** |
+ * The light-gray background color used for print preview. |
+ */ |
+PDFViewer.LIGHT_BACKGROUND_COLOR = '0xFFCCCCCC'; |
+ |
+/** |
+ * The dark-gray background color used for the regular viewer. |
+ */ |
+PDFViewer.DARK_BACKGROUND_COLOR = '0xFF525659'; |
+ |
+/** |
* Creates a new PDFViewer. There should only be one of these objects per |
* document. |
* @constructor |
@@ -117,7 +127,8 @@ function PDFViewer(browserApi) { |
// of the pdf and zoom level. |
this.sizer_ = $('sizer'); |
this.toolbar_ = $('toolbar'); |
- this.pageIndicator_ = $('page-indicator'); |
+ if (!this.isMaterial_ || this.isPrintPreview_) |
+ this.pageIndicator_ = $('page-indicator'); |
this.progressBar_ = $('progress-bar'); |
this.passwordScreen_ = $('password-screen'); |
this.passwordScreen_.addEventListener('password-submitted', |
@@ -128,7 +139,8 @@ function PDFViewer(browserApi) { |
// Create the viewport. |
var topToolbarHeight = |
- this.isMaterial_ ? PDFViewer.MATERIAL_TOOLBAR_HEIGHT : 0; |
+ (this.isMaterial_ && !this.isPrintPreview_) ? |
+ PDFViewer.MATERIAL_TOOLBAR_HEIGHT : 0; |
this.viewport_ = new Viewport(window, |
this.sizer_, |
this.viewportChanged_.bind(this), |
@@ -167,11 +179,11 @@ function PDFViewer(browserApi) { |
} |
this.plugin_.setAttribute('headers', headers); |
- if (this.isMaterial_) { |
- this.plugin_.setAttribute('is-material', ''); |
- this.plugin_.setAttribute('top-toolbar-height', |
- PDFViewer.MATERIAL_TOOLBAR_HEIGHT); |
- } |
+ var backgroundColor = PDFViewer.DARK_BACKGROUND_COLOR; |
+ if (!this.isMaterial_) |
+ backgroundColor = PDFViewer.LIGHT_BACKGROUND_COLOR; |
+ this.plugin_.setAttribute('background-color', backgroundColor); |
+ this.plugin_.setAttribute('top-toolbar-height', topToolbarHeight); |
if (!this.browserApi_.getStreamInfo().embedded) |
this.plugin_.setAttribute('full-frame', ''); |
@@ -202,13 +214,19 @@ function PDFViewer(browserApi) { |
this.zoomToolbar_.addEventListener('zoom-out', |
this.viewport_.zoomOut.bind(this.viewport_)); |
- this.materialToolbar_ = $('material-toolbar'); |
- this.materialToolbar_.addEventListener('save', this.save_.bind(this)); |
- this.materialToolbar_.addEventListener('print', this.print_.bind(this)); |
- this.materialToolbar_.addEventListener('rotate-right', |
- this.rotateClockwise_.bind(this)); |
- this.materialToolbar_.addEventListener('rotate-left', |
- this.rotateCounterClockwise_.bind(this)); |
+ if (!this.isPrintPreview_) { |
+ this.materialToolbar_ = $('material-toolbar'); |
+ this.materialToolbar_.addEventListener('save', this.save_.bind(this)); |
+ this.materialToolbar_.addEventListener('print', this.print_.bind(this)); |
+ this.materialToolbar_.addEventListener('rotate-right', |
+ this.rotateClockwise_.bind(this)); |
+ this.materialToolbar_.addEventListener('rotate-left', |
+ this.rotateCounterClockwise_.bind(this)); |
+ // Must attach to mouseup on the plugin element, since it eats mousedown |
+ // and click events. |
+ this.plugin_.addEventListener('mouseup', |
+ this.materialToolbar_.hideDropdowns.bind(this.materialToolbar_)); |
+ } |
document.body.addEventListener('change-page', function(e) { |
this.viewport_.goToPage(e.detail.page); |
@@ -216,12 +234,6 @@ function PDFViewer(browserApi) { |
this.toolbarManager_ = |
new ToolbarManager(window, this.materialToolbar_, this.zoomToolbar_); |
- |
- // Must attach to mouseup on the plugin element, since it eats mousedown and |
- // click events. |
- this.plugin_.addEventListener( |
- 'mouseup', |
- this.materialToolbar_.hideDropdowns.bind(this.materialToolbar_)); |
} |
// Set up the ZoomManager. |
@@ -353,7 +365,8 @@ PDFViewer.prototype = { |
} |
return; |
case 71: // g key. |
- if (this.isMaterial_ && (e.ctrlKey || e.metaKey)) { |
+ if (this.isMaterial_ && this.materialToolbar_ && |
+ (e.ctrlKey || e.metaKey)) { |
this.toolbarManager_.showToolbars(); |
this.materialToolbar_.selectPageNumber(); |
// To prevent the default "find text" behaviour in Chrome. |
@@ -488,10 +501,12 @@ PDFViewer.prototype = { |
* @param {number} progress the progress as a percentage. |
*/ |
updateProgress_: function(progress) { |
- if (this.isMaterial_) |
- this.materialToolbar_.loadProgress = progress; |
- else |
+ if (this.isMaterial_) { |
+ if (this.materialToolbar_) |
+ this.materialToolbar_.loadProgress = progress; |
+ } else { |
this.progressBar_.progress = progress; |
+ } |
if (progress == -1) { |
// Document load failed. |
@@ -550,11 +565,15 @@ PDFViewer.prototype = { |
if (this.passwordScreen_.active) |
this.passwordScreen_.accept(); |
+ if (this.pageIndicator_) |
+ this.pageIndicator_.initialFadeIn(); |
+ |
if (this.isMaterial_) { |
- this.materialToolbar_.docLength = |
- this.documentDimensions_.pageDimensions.length; |
+ if (this.materialToolbar_) { |
+ this.materialToolbar_.docLength = |
+ this.documentDimensions_.pageDimensions.length; |
+ } |
} else { |
- this.pageIndicator_.initialFadeIn(); |
this.toolbar_.initialFadeIn(); |
} |
break; |
@@ -619,7 +638,7 @@ PDFViewer.prototype = { |
getFilenameFromURL(this.browserApi_.getStreamInfo().originalUrl); |
} |
this.bookmarks_ = message.data.bookmarks; |
- if (this.isMaterial_) { |
+ if (this.isMaterial_ && this.materialToolbar_) { |
this.materialToolbar_.docTitle = document.title; |
this.materialToolbar_.bookmarks = this.bookmarks; |
} |
@@ -704,9 +723,12 @@ PDFViewer.prototype = { |
// Update the page indicator. |
var visiblePage = this.viewport_.getMostVisiblePage(); |
- if (this.isMaterial_) { |
+ |
+ if (this.materialToolbar_) |
this.materialToolbar_.pageNo = visiblePage + 1; |
- } else { |
+ |
+ // TODO(raymes): Give pageIndicator_ the same API as materialToolbar_. |
+ if (this.pageIndicator_) { |
this.pageIndicator_.index = visiblePage; |
if (this.documentDimensions_.pageDimensions.length > 1 && |
hasScrollbars.vertical) { |
@@ -796,8 +818,7 @@ PDFViewer.prototype = { |
if (saveButton) |
saveButton.parentNode.removeChild(saveButton); |
- if (!this.isMaterial_) |
- this.pageIndicator_.pageLabels = message.data.pageNumbers; |
+ this.pageIndicator_.pageLabels = message.data.pageNumbers; |
this.plugin_.postMessage({ |
type: 'resetPrintPreviewMode', |