Index: chrome/browser/resources/print_preview.js |
diff --git a/chrome/browser/resources/print_preview.js b/chrome/browser/resources/print_preview.js |
index 00478b6e5f2b3789297f79cc9c7a25d252d5ada7..323299665fa48348238b11bab74ce72c37791c5a 100644 |
--- a/chrome/browser/resources/print_preview.js |
+++ b/chrome/browser/resources/print_preview.js |
@@ -48,10 +48,18 @@ const MANAGE_PRINTERS = 'Manage Printers'; |
* the printer list. |
*/ |
function onLoad() { |
+ $('system-dialog-link').addEventListener('click', showSystemDialog); |
+ $('cancel-button').addEventListener('click', handleCancelButtonClick); |
+ $('dummy-viewer').classList.add('hidden'); |
+ |
+ if(!checkCompatiblePluginExists()) { |
+ displayErrorMessage(localStrings.getString('noPlugin')); |
+ return; |
+ } |
+ |
$('printer-list').disabled = true; |
$('print-button').disabled = true; |
$('print-button').addEventListener('click', printFile); |
- $('cancel-button').addEventListener('click', handleCancelButtonClick); |
$('all-pages').addEventListener('click', onPageSelectionMayHaveChanged); |
$('copies').addEventListener('input', copiesFieldChanged); |
$('print-pages').addEventListener('click', handleIndividualPagesCheckbox); |
@@ -68,7 +76,6 @@ function onLoad() { |
$('bw').addEventListener('click', function() { setColor(false); }); |
$('printer-list').addEventListener( |
'change', updateControlsWithSelectedPrinterCapabilities); |
- $('system-dialog-link').addEventListener('click', showSystemDialog); |
$('increment').addEventListener('click', |
function() { onCopiesButtonsClicked(1); }); |
$('decrement').addEventListener('click', |
@@ -323,7 +330,6 @@ function printFile() { |
function requestPrintPreview() { |
isPreviewStillLoading = true; |
setControlsDisabled(true); |
- $('dancing-dots').classList.remove('hidden'); |
$('dancing-dots').classList.remove('invisible'); |
chrome.send('getPreview', [getSettingsJSON()]); |
} |
@@ -390,6 +396,7 @@ function setColor(color) { |
*/ |
function displayErrorMessage(errorMessage) { |
isPreviewStillLoading = false; |
+ $('dancing-dots').classList.remove('invisible'); |
$('dancing-dots-text').classList.add('hidden'); |
$('error-text').innerHTML = errorMessage; |
$('error-text').classList.remove('hidden'); |
@@ -510,6 +517,14 @@ function createPDFPlugin() { |
} |
/** |
+ * Returns true if a compatible pdf plugin exists, false if it doesn't. |
+ */ |
+function checkCompatiblePluginExists() { |
+ var dummyPlugin = $('dummy-viewer') |
+ return !!dummyPlugin.onload; |
+} |
+ |
+/** |
* Updates the state of print button depending on the user selection. |
* The button is enabled only when the following conditions are true. |
* 1) The selected page ranges are valid. |