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

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

Issue 7639023: Revert 96567 - Reland 96406 - Print preview page selection should not require a rerendering of dr... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/resources/print_preview/page_settings.js ('k') | chrome/common/print_messages.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « chrome/browser/resources/print_preview/page_settings.js ('k') | chrome/common/print_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698