Index: chrome/browser/resources/print_preview/print_preview.js |
=================================================================== |
--- chrome/browser/resources/print_preview/print_preview.js (revision 96579) |
+++ chrome/browser/resources/print_preview/print_preview.js (working copy) |
@@ -23,7 +23,6 @@ |
const MORE_PRINTERS = 'morePrinters'; |
const SIGN_IN = 'signIn'; |
const PRINT_TO_PDF = 'Print to PDF'; |
-const COMPLETE_PREVIEW_DATA_INDEX = -1; |
// State of the print preview settings. |
var printSettings = new PrintSettings(); |
@@ -63,12 +62,7 @@ |
var firstCloudPrintOptionPos = 0; |
var lastCloudPrintOptionPos = firstCloudPrintOptionPos; |
-// Store the current previewUid. |
-var currentPreviewUid = ''; |
-// True if we need to generate draft preview data. |
-var generateDraftData = true; |
- |
// TODO(abodenha@chromium.org) A lot of cloud print specific logic has |
// made its way into this file. Refactor to create a cleaner boundary |
// between print preview and GCP code. Reference bug 88098 when fixing. |
@@ -317,8 +311,7 @@ |
'landscape': layoutSettings.isLandscape(), |
'color': colorSettings.isColor(), |
'printToPDF': printToPDF, |
- 'requestID': 0, |
- 'generateDraftData': generateDraftData}; |
+ 'requestID': 0}; |
var printerList = $('printer-list'); |
var selectedPrinter = printerList.selectedIndex; |
@@ -428,42 +421,15 @@ |
} |
/** |
- * Loads the selected preview pages. |
- */ |
-function loadSelectedPages() { |
- hasPendingPreviewRequest = false; |
- pageSettings.updatePageSelection(); |
- var pageSet = pageSettings.previouslySelectedPages; |
- var pageCount = pageSet.length; |
- if (pageCount == 0 || currentPreviewUid == '') |
- return; |
- |
- for (var i = 0; i < pageCount; i++) |
- onDidPreviewPage(pageSet[i] - 1, currentPreviewUid); |
- addEventListeners(); |
-} |
- |
-/** |
* Asks the browser to generate a preview PDF based on current print settings. |
*/ |
function requestPrintPreview() { |
hasPendingPreviewRequest = true; |
removeEventListeners(); |
printSettings.save(); |
- generateDraftData = true; |
if (!isTabHidden) |
showLoadingAnimation(); |
- if (previewModifiable && hasOnlyPageSettingsChanged()) { |
- loadSelectedPages(); |
- generateDraftData = false; |
- } else { |
- pageSettings.updatePageSelection(); |
- } |
- |
- if (!previewModifiable && pageSettings.totalPageCount > 0) |
- generateDraftData = false; |
- |
var settings = getSettings(); |
settings.requestID = generatePreviewRequestID(); |
chrome.send('getPreview', [JSON.stringify(settings)]); |
@@ -863,16 +829,12 @@ |
if (!previewModifiable) |
return; |
- if (checkIfSettingsChangedAndRegeneratePreview()) |
- return; |
- |
var pageIndex = pageSettings.previouslySelectedPages.indexOf(pageNumber + 1); |
- if (pageIndex == -1) |
- return; |
- currentPreviewUid = previewUid; |
+ if (checkIfSettingsChangedAndRegeneratePreview()) |
+ return; |
if (pageIndex == 0) |
- createPDFPlugin(pageNumber); |
+ createPDFPlugin(previewUid); |
$('pdf-viewer').loadPreviewPage( |
getPageSrcURL(previewUid, pageNumber), pageIndex); |
@@ -902,8 +864,7 @@ |
if (!previewModifiable) { |
// If the preview is not modifiable the plugin has not been created yet. |
- currentPreviewUid = previewUid; |
- createPDFPlugin(COMPLETE_PREVIEW_DATA_INDEX); |
+ createPDFPlugin(previewUid); |
} |
cr.dispatchSimpleEvent(document, 'updateSummary'); |
@@ -937,41 +898,28 @@ |
} |
/** |
- * Check if only page selection has been changed since the last preview request |
- * and is valid. |
- * @return {boolean} true if the new page selection is valid. |
- */ |
-function hasOnlyPageSettingsChanged() { |
- var tempPrintSettings = new PrintSettings(); |
- tempPrintSettings.save(); |
- |
- return !!(printSettings.deviceName == tempPrintSettings.deviceName && |
- printSettings.isLandscape == tempPrintSettings.isLandscape && |
- pageSettings.hasPageSelectionChangedAndIsValid()); |
-} |
- |
-/** |
* Create the PDF plugin or reload the existing one. |
- * @param {number} srcDataIndex Preview data source index. |
+ * @param {string} previewUid Preview unique identifier. |
*/ |
-function createPDFPlugin(srcDataIndex) { |
+function createPDFPlugin(previewUid) { |
var pdfViewer = $('pdf-viewer'); |
- var srcURL = getPageSrcURL(currentPreviewUid, srcDataIndex); |
if (pdfViewer) { |
// Need to call this before the reload(), where the plugin resets its |
// internal page count. |
pdfViewer.goToPage('0'); |
- pdfViewer.resetPrintPreviewUrl(srcURL); |
pdfViewer.reload(); |
pdfViewer.grayscale(!colorSettings.isColor()); |
return; |
} |
+ // Get the complete preview document. |
+ var dataIndex = previewModifiable ? '0' : '-1'; |
+ |
pdfViewer = document.createElement('embed'); |
pdfViewer.setAttribute('id', 'pdf-viewer'); |
pdfViewer.setAttribute('type', |
'application/x-google-chrome-print-preview-pdf'); |
- pdfViewer.setAttribute('src', srcURL); |
+ pdfViewer.setAttribute('src', getPageSrcURL(previewUid, dataIndex)); |
pdfViewer.setAttribute('aria-live', 'polite'); |
pdfViewer.setAttribute('aria-atomic', 'true'); |
$('mainview').appendChild(pdfViewer); |
@@ -989,8 +937,7 @@ |
dummyPlugin.goToPage && |
dummyPlugin.removePrintButton && |
dummyPlugin.loadPreviewPage && |
- dummyPlugin.printPreviewPageCount && |
- dummyPlugin.resetPrintPreviewUrl); |
+ dummyPlugin.printPreviewPageCount); |
} |
window.addEventListener('DOMContentLoaded', onLoad); |