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

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

Issue 7056070: PrintPreview: Preview generation should not block print button. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed another corner case Created 9 years, 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 var localStrings = new LocalStrings(); 5 var localStrings = new LocalStrings();
6 6
7 // The total page count of the previewed document regardless of which pages the 7 // The total page count of the previewed document regardless of which pages the
8 // user has selected. 8 // user has selected.
9 var totalPageCount = -1; 9 var totalPageCount = -1;
10 10
(...skipping 12 matching lines...) Expand all
23 // Used to disable some printing options when the preview is not modifiable. 23 // Used to disable some printing options when the preview is not modifiable.
24 var previewModifiable = false; 24 var previewModifiable = false;
25 25
26 // Destination list special value constants. 26 // Destination list special value constants.
27 const PRINT_TO_PDF = 'Print To PDF'; 27 const PRINT_TO_PDF = 'Print To PDF';
28 const MANAGE_PRINTERS = 'Manage Printers'; 28 const MANAGE_PRINTERS = 'Manage Printers';
29 29
30 // State of the print preview settings. 30 // State of the print preview settings.
31 var printSettings = new PrintSettings(); 31 var printSettings = new PrintSettings();
32 32
33 // True when a pending print preview request exists.
34 var hasPendingPreviewRequest = false;
35
36 // True when a pending print file request exists.
37 var hasPendingPrintFileRequest = false;
38
39 // True when a compatible plugin exists.
40 var hasCompatiblePlugin = true;
41
42 // True when initiator tab is closed.
43 var isInitiatorTabClosed = false;
44
33 /** 45 /**
34 * Window onload handler, sets up the page and starts print preview by getting 46 * Window onload handler, sets up the page and starts print preview by getting
35 * the printer list. 47 * the printer list.
36 */ 48 */
37 function onLoad() { 49 function onLoad() {
38 $('system-dialog-link').addEventListener('click', showSystemDialog); 50 $('system-dialog-link').addEventListener('click', showSystemDialog);
39 $('cancel-button').addEventListener('click', handleCancelButtonClick); 51 $('cancel-button').addEventListener('click', handleCancelButtonClick);
40 52
41 if (!checkCompatiblePluginExists()) { 53 if (!checkCompatiblePluginExists()) {
54 hasCompatiblePlugin = false;
55 $('print-button').disabled = true;
42 displayErrorMessage(localStrings.getString('noPlugin'), false); 56 displayErrorMessage(localStrings.getString('noPlugin'), false);
43 $('mainview').parentElement.removeChild($('dummy-viewer')); 57 $('mainview').parentElement.removeChild($('dummy-viewer'));
44 return; 58 return;
45 } 59 }
46 $('mainview').parentElement.removeChild($('dummy-viewer')); 60 $('mainview').parentElement.removeChild($('dummy-viewer'));
47 61
48 $('printer-list').disabled = true; 62 $('printer-list').disabled = true;
49 $('print-button').disabled = true; 63 $('print-button').onclick = printFile;
64
65 setDefaultHandlersForCopiesControls();
66 setDefaultHandlersForPagesControls();
50 showLoadingAnimation(); 67 showLoadingAnimation();
51 chrome.send('getDefaultPrinter'); 68 chrome.send('getDefaultPrinter');
52 } 69 }
53 70
54 /** 71 /**
72 * Handles all pages checkbox click event.
73 */
74 function handleAllPagesCheckbox() {
75 updatePrintButtonState();
76 }
77
78 /**
79 * Validates the individual pages text format.
80 */
81 function validateIndividualPagesText() {
82 $('print-pages').checked = true;
83 validatePageRangesField();
84 updatePrintButtonState();
85 }
86
87 /**
88 * Handles the individual pages input event.
89 */
90 function handleIndividualPagesInputEvent() {
91 $('print-pages').checked = true;
92 resetPageRangeFieldTimer();
93 }
94
95 /**
96 * Sets the default event handlers for pages controls.
97 */
98 function setDefaultHandlersForPagesControls() {
99 var allPages = $('all-pages');
100 var printPages = $('print-pages');
101 var individualPages = $('individual-pages');
102 individualPages.onblur = null;
103 individualPages.onfocus = null;
104
105 if (!hasCompatiblePlugin || isInitiatorTabClosed) {
106 allPages.onclick = null;
107 printPages.onclick = null;
108 individualPages.oninput = null;
109 } else {
110 allPages.onclick = handleAllPagesCheckbox;
111 printPages.onclick = handleIndividualPagesCheckbox;
112 individualPages.oninput = validateIndividualPagesText;
dpapad 2011/06/07 20:47:14 Shouldn't we validate the the page range field onl
kmadhusu 2011/06/08 00:39:15 Fixed. Changed the behavior to validate on onblur
113 }
114 }
115
116 /**
117 * Sets the default event handlers for copies controls.
118 */
119 function setDefaultHandlersForCopiesControls() {
120 $('copies').oninput = copiesFieldChanged;
121 $('increment').onclick = function() { onCopiesButtonsClicked(1); };
122 $('decrement').onclick = function() { onCopiesButtonsClicked(-1); };
123 }
124
125 /**
55 * Adds event listeners to the settings controls. 126 * Adds event listeners to the settings controls.
56 */ 127 */
57 function addEventListeners() { 128 function addEventListeners() {
58 $('print-button').onclick = printFile;
59
60 // Controls that require preview rendering. 129 // Controls that require preview rendering.
61 $('all-pages').onclick = onPageSelectionMayHaveChanged; 130 $('all-pages').onclick = onPageSelectionMayHaveChanged;
62 $('print-pages').onclick = handleIndividualPagesCheckbox; 131 $('print-pages').onclick = handleIndividualPagesCheckbox;
63 var individualPages = $('individual-pages'); 132 var individualPages = $('individual-pages');
64 individualPages.onblur = function() { 133 individualPages.onblur = function() {
65 clearTimeout(timerId); 134 clearTimeout(timerId);
66 onPageSelectionMayHaveChanged(); 135 onPageSelectionMayHaveChanged();
67 }; 136 };
68 individualPages.onfocus = addTimerToPageRangeField; 137 individualPages.onfocus = addTimerToPageRangeField;
69 individualPages.oninput = resetPageRangeFieldTimer; 138 individualPages.oninput = handleIndividualPagesInputEvent;
70 $('landscape').onclick = onLayoutModeToggle; 139 $('landscape').onclick = onLayoutModeToggle;
71 $('portrait').onclick = onLayoutModeToggle; 140 $('portrait').onclick = onLayoutModeToggle;
72 $('printer-list').onchange = updateControlsWithSelectedPrinterCapabilities; 141 $('printer-list').onchange = updateControlsWithSelectedPrinterCapabilities;
73 142
74 // Controls that dont require preview rendering. 143 // Controls that dont require preview rendering.
75 $('copies').oninput = function() { 144 $('copies').oninput = function() {
76 copiesFieldChanged(); 145 copiesFieldChanged();
77 updatePrintButtonState(); 146 updatePrintButtonState();
78 updatePrintSummary(); 147 updatePrintSummary();
79 }; 148 };
80 $('two-sided').onclick = handleTwoSidedClick; 149 $('two-sided').onclick = handleTwoSidedClick;
81 $('color').onclick = function() { setColor(true); }; 150 $('color').onclick = function() { setColor(true); };
82 $('bw').onclick = function() { setColor(false); }; 151 $('bw').onclick = function() { setColor(false); };
83 $('increment').onclick = function() { 152 $('increment').onclick = function() {
84 onCopiesButtonsClicked(1); 153 onCopiesButtonsClicked(1);
85 updatePrintButtonState(); 154 updatePrintButtonState();
86 updatePrintSummary(); 155 updatePrintSummary();
87 }; 156 };
88 $('decrement').onclick = function() { 157 $('decrement').onclick = function() {
89 onCopiesButtonsClicked(-1); 158 onCopiesButtonsClicked(-1);
90 updatePrintButtonState(); 159 updatePrintButtonState();
91 updatePrintSummary(); 160 updatePrintSummary();
92 }; 161 };
93 } 162 }
94 163
95 /** 164 /**
96 * Removes event listeners from the settings controls. 165 * Removes event listeners from the settings controls.
97 */ 166 */
98 function removeEventListeners() { 167 function removeEventListeners() {
99 // Controls that require preview rendering.
100 $('print-button').disabled = true;
101 $('all-pages').onclick = null;
102 $('print-pages').onclick = null;
103 var individualPages = $('individual-pages');
104 individualPages.onblur = null;
105 individualPages.onfocus = null;
106 individualPages.oninput = null;
107 clearTimeout(timerId); 168 clearTimeout(timerId);
169
170 // Controls that require preview rendering
171 setDefaultHandlersForPagesControls();
108 $('landscape').onclick = null; 172 $('landscape').onclick = null;
109 $('portrait').onclick = null; 173 $('portrait').onclick = null;
110 $('printer-list').onchange = null; 174 $('printer-list').onchange = null;
111 175
112 // Controls that dont require preview rendering. 176 // Controls that dont require preview rendering.
113 $('copies').oninput = copiesFieldChanged;
114 $('two-sided').onclick = null; 177 $('two-sided').onclick = null;
115 $('color').onclick = null; 178 $('color').onclick = null;
116 $('bw').onclick = null; 179 $('bw').onclick = null;
117 $('increment').onclick = function() { onCopiesButtonsClicked(1); }; 180 setDefaultHandlersForCopiesControls();
118 $('decrement').onclick = function() { onCopiesButtonsClicked(-1); };
119 } 181 }
120 182
121 /** 183 /**
122 * Asks the browser to close the preview tab. 184 * Asks the browser to close the preview tab.
123 */ 185 */
124 function handleCancelButtonClick() { 186 function handleCancelButtonClick() {
125 chrome.send('closePrintPreviewTab'); 187 chrome.send('closePrintPreviewTab');
126 } 188 }
127 189
128 /** 190 /**
129 * Asks the browser to show the native print dialog for printing. 191 * Asks the browser to show the native print dialog for printing.
130 */ 192 */
131 function showSystemDialog() { 193 function showSystemDialog() {
132 chrome.send('showSystemDialog'); 194 chrome.send('showSystemDialog');
133 } 195 }
134 196
135 /** 197 /**
136 * Disables the controls which need the initiator tab to generate preview 198 * Disables the controls which need the initiator tab to generate preview
137 * data. This function is called when the initiator tab is closed. 199 * data. This function is called when the initiator tab is closed.
138 * @param {string} initiatorTabURL The URL of the initiator tab. 200 * @param {string} initiatorTabURL The URL of the initiator tab.
139 */ 201 */
140 function onInitiatorTabClosed(initiatorTabURL) { 202 function onInitiatorTabClosed(initiatorTabURL) {
203 isInitiatorTabClosed = true;
141 $('reopen-page').addEventListener('click', function() { 204 $('reopen-page').addEventListener('click', function() {
142 window.location = initiatorTabURL; 205 window.location = initiatorTabURL;
143 }); 206 });
144 displayErrorMessage(localStrings.getString('initiatorTabClosed'), true); 207 displayErrorMessage(localStrings.getString('initiatorTabClosed'), true);
208 $('print-button').disabled = true;
dpapad 2011/06/07 20:47:14 Should we move this line within displayErrorMessag
kmadhusu 2011/06/08 00:39:15 Fixed. (Removed line #208 and #55).
145 } 209 }
146 210
147 /** 211 /**
148 * Gets the selected printer capabilities and updates the controls accordingly. 212 * Gets the selected printer capabilities and updates the controls accordingly.
149 */ 213 */
150 function updateControlsWithSelectedPrinterCapabilities() { 214 function updateControlsWithSelectedPrinterCapabilities() {
151 var printerList = $('printer-list'); 215 var printerList = $('printer-list');
152 var selectedIndex = printerList.selectedIndex; 216 var selectedIndex = printerList.selectedIndex;
153 if (selectedIndex < 0) 217 if (selectedIndex < 0)
154 return; 218 return;
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 var deviceName = ''; 383 var deviceName = '';
320 if (selectedPrinter >= 0) 384 if (selectedPrinter >= 0)
321 deviceName = printerList.options[selectedPrinter].value; 385 deviceName = printerList.options[selectedPrinter].value;
322 return deviceName; 386 return deviceName;
323 } 387 }
324 388
325 /** 389 /**
326 * Asks the browser to print the preview PDF based on current print settings. 390 * Asks the browser to print the preview PDF based on current print settings.
327 */ 391 */
328 function printFile() { 392 function printFile() {
393 hasPendingPrintFileRequest = hasPendingPreviewRequest ? true : false;
dpapad 2011/06/07 20:47:14 hasPendingPrintFileRequest = hasPendingPreviewRequ
kmadhusu 2011/06/08 00:39:15 Just for better readability of the code, I used th
394
395 if (hasPendingPrintFileRequest) {
396 if (getSelectedPrinterName() != PRINT_TO_PDF)
397 chrome.send('hidePreview');
398 return;
399 }
400
329 if (getSelectedPrinterName() != PRINT_TO_PDF) { 401 if (getSelectedPrinterName() != PRINT_TO_PDF) {
330 $('print-button').classList.add('loading'); 402 $('print-button').classList.add('loading');
331 $('cancel-button').classList.add('loading'); 403 $('cancel-button').classList.add('loading');
332 $('print-summary').innerHTML = localStrings.getString('printing'); 404 $('print-summary').innerHTML = localStrings.getString('printing');
333 removeEventListeners(); 405 removeEventListeners();
334 window.setTimeout(function() { chrome.send('print', [getSettingsJSON()]); }, 406 window.setTimeout(function() { chrome.send('print', [getSettingsJSON()]); },
335 1000); 407 1000);
336 } else 408 } else {
337 chrome.send('print', [getSettingsJSON()]); 409 chrome.send('print', [getSettingsJSON()]);
410 }
338 } 411 }
339 412
340 /** 413 /**
341 * Asks the browser to generate a preview PDF based on current print settings. 414 * Asks the browser to generate a preview PDF based on current print settings.
342 */ 415 */
343 function requestPrintPreview() { 416 function requestPrintPreview() {
417 hasPendingPreviewRequest = true;
344 removeEventListeners(); 418 removeEventListeners();
345 printSettings.save(); 419 printSettings.save();
346 showLoadingAnimation(); 420 showLoadingAnimation();
347 chrome.send('getPreview', [getSettingsJSON()]); 421 chrome.send('getPreview', [getSettingsJSON()]);
348 } 422 }
349 423
350 /** 424 /**
351 * Set the default printer. If there is one, generate a print preview. 425 * Set the default printer. If there is one, generate a print preview.
352 * @param {string} printer Name of the default printer. Empty if none. 426 * @param {string} printer Name of the default printer. Empty if none.
353 */ 427 */
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 * @param {string} jobTitle The print job title. 564 * @param {string} jobTitle The print job title.
491 * @param {boolean} modifiable If the preview is modifiable. 565 * @param {boolean} modifiable If the preview is modifiable.
492 * @param {string} previewUid Preview unique identifier. 566 * @param {string} previewUid Preview unique identifier.
493 */ 567 */
494 function updatePrintPreview(pageCount, jobTitle, modifiable, previewUid) { 568 function updatePrintPreview(pageCount, jobTitle, modifiable, previewUid) {
495 var tempPrintSettings = new PrintSettings(); 569 var tempPrintSettings = new PrintSettings();
496 tempPrintSettings.save(); 570 tempPrintSettings.save();
497 571
498 previewModifiable = modifiable; 572 previewModifiable = modifiable;
499 573
574 hasPendingPreviewRequest = false;
575
500 if (totalPageCount == -1) 576 if (totalPageCount == -1)
501 totalPageCount = pageCount; 577 totalPageCount = pageCount;
502 578
503 if (previouslySelectedPages.length == 0) 579 if (previouslySelectedPages.length == 0)
504 for (var i = 0; i < totalPageCount; i++) 580 for (var i = 0; i < totalPageCount; i++)
505 previouslySelectedPages.push(i+1); 581 previouslySelectedPages.push(i+1);
506 582
507 if (printSettings.deviceName != tempPrintSettings.deviceName) { 583 if (printSettings.deviceName != tempPrintSettings.deviceName) {
508 updateControlsWithSelectedPrinterCapabilities(); 584 updateControlsWithSelectedPrinterCapabilities();
509 return; 585 return;
510 } else if (printSettings.isLandscape != tempPrintSettings.isLandscape) { 586 } else if (printSettings.isLandscape != tempPrintSettings.isLandscape) {
511 setDefaultValuesAndRegeneratePreview(); 587 setDefaultValuesAndRegeneratePreview();
512 return; 588 return;
513 } else if (getSelectedPagesValidityLevel() == 1) { 589 } else if (getSelectedPagesValidityLevel() == 1) {
514 var currentlySelectedPages = getSelectedPagesSet(); 590 var currentlySelectedPages = getSelectedPagesSet();
515 if (!areArraysEqual(previouslySelectedPages, currentlySelectedPages)) { 591 if (!areArraysEqual(previouslySelectedPages, currentlySelectedPages)) {
516 previouslySelectedPages = currentlySelectedPages; 592 previouslySelectedPages = currentlySelectedPages;
517 requestPrintPreview(); 593 requestPrintPreview();
518 return; 594 return;
519 } 595 }
520 } 596 }
521 597
522 if (getSelectedPagesValidityLevel() != 1) 598 if (getSelectedPagesValidityLevel() != 1)
523 pageRangesFieldChanged(); 599 pageRangesFieldChanged();
524 600
525 // Update the current tab title. 601 // Update the current tab title.
526 document.title = localStrings.getStringF('printPreviewTitleFormat', jobTitle); 602 document.title = localStrings.getStringF('printPreviewTitleFormat', jobTitle);
527 603
528 createPDFPlugin(previewUid); 604 createPDFPlugin(previewUid);
605
606 if (hasPendingPrintFileRequest) {
607 printFile();
608 return;
609 }
610
529 updatePrintSummary(); 611 updatePrintSummary();
530 updatePrintButtonState(); 612 updatePrintButtonState();
531 addEventListeners(); 613 addEventListeners();
532 } 614 }
533 615
534 /** 616 /**
535 * Create the PDF plugin or reload the existing one. 617 * Create the PDF plugin or reload the existing one.
536 * @param {string} previewUid Preview unique identifier. 618 * @param {string} previewUid Preview unique identifier.
537 */ 619 */
538 function createPDFPlugin(previewUid) { 620 function createPDFPlugin(previewUid) {
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 /** 682 /**
601 * Listener function that executes whenever a change occurs in the 'copies' 683 * Listener function that executes whenever a change occurs in the 'copies'
602 * field. 684 * field.
603 */ 685 */
604 function copiesFieldChanged() { 686 function copiesFieldChanged() {
605 updateCopiesButtonsState(); 687 updateCopiesButtonsState();
606 $('collate-option').hidden = getCopies() <= 1; 688 $('collate-option').hidden = getCopies() <= 1;
607 } 689 }
608 690
609 /** 691 /**
610 * Executes whenever a blur event occurs on the 'individual-pages' 692 * Validates the page ranges text and updates the hint accordingly.
611 * field or when the timer expires. It takes care of
612 * 1) showing/hiding warnings/suggestions
613 * 2) updating print button/summary
614 */ 693 */
615 function pageRangesFieldChanged() { 694 function validatePageRangesField() {
616 var currentlySelectedPages = getSelectedPagesSet();
617 var individualPagesField = $('individual-pages'); 695 var individualPagesField = $('individual-pages');
618 var individualPagesHint = $('individual-pages-hint'); 696 var individualPagesHint = $('individual-pages-hint');
619 var validityLevel = getSelectedPagesValidityLevel(); 697 var validityLevel = getSelectedPagesValidityLevel();
620 698
621 if (validityLevel == 1) { 699 if (validityLevel == 1) {
622 individualPagesField.classList.remove('invalid'); 700 individualPagesField.classList.remove('invalid');
623 fadeOutElement(individualPagesHint); 701 fadeOutElement(individualPagesHint);
624 } else { 702 } else {
625 individualPagesField.classList.add('invalid'); 703 individualPagesField.classList.add('invalid');
626 individualPagesHint.classList.remove('suggestion'); 704 individualPagesHint.classList.remove('suggestion');
627 individualPagesHint.innerHTML = 705 individualPagesHint.innerHTML =
628 localStrings.getStringF('pageRangeInstruction', 706 localStrings.getStringF('pageRangeInstruction',
629 localStrings.getString( 707 localStrings.getString(
630 'examplePageRangeText')); 708 'examplePageRangeText'));
631 fadeInElement(individualPagesHint); 709 fadeInElement(individualPagesHint);
632 } 710 }
711 }
712
713 /**
714 * Executes whenever a blur event occurs on the 'individual-pages'
715 * field or when the timer expires. It takes care of
716 * 1) showing/hiding warnings/suggestions
717 * 2) updating print button/summary
718 */
719 function pageRangesFieldChanged() {
720 validatePageRangesField();
633 721
634 resetPageRangeFieldTimer(); 722 resetPageRangeFieldTimer();
635 updatePrintButtonState(); 723 updatePrintButtonState();
636 updatePrintSummary(); 724 updatePrintSummary();
637 } 725 }
638 726
639 /** 727 /**
640 * Updates the state of the increment/decrement buttons based on the current 728 * Updates the state of the increment/decrement buttons based on the current
641 * 'copies' value. 729 * 'copies' value.
642 */ 730 */
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
803 var failedToParse = 0; 891 var failedToParse = 0;
804 892
805 var parts = pageText.split(/,/); 893 var parts = pageText.split(/,/);
806 894
807 for (var i = 0; i < parts.length; ++i) { 895 for (var i = 0; i < parts.length; ++i) {
808 var part = parts[i].replace(/\s*/g, ''); 896 var part = parts[i].replace(/\s*/g, '');
809 if (part.length == 0) 897 if (part.length == 0)
810 continue; 898 continue;
811 899
812 var match = part.match(/^([0-9]+)-([0-9]*)$/); 900 var match = part.match(/^([0-9]+)-([0-9]*)$/);
813 if (match && match[1]) { 901 if (totalPageCount != -1) {
814 var from = parseInt(match[1], 10); 902 if (match && match[1]) {
815 var to = match[2] ? parseInt(match[2], 10) : totalPageCount; 903 var from = parseInt(match[1], 10);
904 var to = match[2] ? parseInt(match[2], 10) : totalPageCount;
816 905
817 if (from && to && from <= to) 906 if (from && to && from <= to)
907 successfullyParsed += 1;
908 else
909 failedToParse += 1;
910 } else if (isInteger(part) && parseInt(part, 10) <= totalPageCount &&
911 parseInt(part, 10) > 0) {
818 successfullyParsed += 1; 912 successfullyParsed += 1;
819 else 913 } else {
820 failedToParse += 1; 914 failedToParse += 1;
821 915 }
822 } else if (isInteger(part) && parseInt(part, 10) <= totalPageCount && 916 } else {
823 parseInt(part, 10) > 0) 917 // totalPageCount is -1. Just validate the page range format.
824 successfullyParsed += 1; 918 if (match && isInteger(match[1])) {
825 else 919 if (match[2] && !isInteger(match[2]))
826 failedToParse += 1; 920 failedToParse += 1;
921 successfullyParsed += 1;
922 } else if (isInteger(part)) {
dpapad 2011/06/07 20:47:14 Shouldn't we check also for parseInt(part, 10) > 0
kmadhusu 2011/06/08 00:39:15 Fixed.
923 successfullyParsed += 1;
924 } else {
925 failedToParse += 1;
926 }
927 }
827 } 928 }
828 if (successfullyParsed > 0 && failedToParse == 0) 929 if (successfullyParsed > 0 && failedToParse == 0)
829 return 1; 930 return 1;
830 else if (successfullyParsed > 0 && failedToParse > 0) 931 else if (successfullyParsed > 0 && failedToParse > 0)
831 return 0; 932 return 0;
832 else 933 else
833 return -1; 934 return -1;
834 } 935 }
835 936
836 function isSelectedPagesFieldValid() { 937 function isSelectedPagesFieldValid() {
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
965 this.isLandscape = ''; 1066 this.isLandscape = '';
966 } 1067 }
967 1068
968 /** 1069 /**
969 * Takes a snapshot of the print settings. 1070 * Takes a snapshot of the print settings.
970 */ 1071 */
971 PrintSettings.prototype.save = function() { 1072 PrintSettings.prototype.save = function() {
972 this.deviceName = getSelectedPrinterName(); 1073 this.deviceName = getSelectedPrinterName();
973 this.isLandscape = isLandscape(); 1074 this.isLandscape = isLandscape();
974 } 1075 }
OLDNEW
« no previous file with comments | « chrome/browser/printing/print_preview_tab_controller.cc ('k') | chrome/browser/ui/webui/print_preview_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698