Commit 794c2033 authored by thestig@chromium.org's avatar thestig@chromium.org

Print preview: A quick hack to support printing to the default printer without...

Print preview: A quick hack to support printing to the default printer without user confirmation in kiosk mode.

BUG=31395
TEST=none

Review URL: http://codereview.chromium.org/8915027

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114605 0039d316-1c4b-4281-b951-d872f2087c98
parent 2117f255
......@@ -53,6 +53,10 @@ var isPrintReadyMetafileReady = false;
// True when preview tab is hidden.
var isTabHidden = false;
// True in kiosk mode where print preview can print automatically without
// user intervention. See http://crbug.com/31395.
var printAutomaticallyInKioskMode = false;
// @type {print_preview.PrintHeader} Holds the print and cancel buttons.
var printHeader;
......@@ -191,6 +195,8 @@ function setInitialSettings(initialSettings) {
}
setDefaultPrinter(initialSettings['printerName'],
initialSettings['cloudPrintData']);
printAutomaticallyInKioskMode =
initialSettings['printAutomaticallyInKioskMode'];
}
/**
......@@ -815,6 +821,8 @@ function onPDFLoad() {
isFirstPageLoaded = true;
checkAndHideOverlayLayerIfValid();
sendPrintDocumentRequestIfNeeded();
if (printAutomaticallyInKioskMode)
printHeader.printButton.click();
}
function setPluginPreviewPageCount() {
......
......@@ -51,7 +51,7 @@
#include "printing/print_settings.h"
#include "unicode/ulocdata.h"
#if !defined(OS_CHROMEOS)
#if !defined(OS_MACOSX)
#include "base/command_line.h"
#include "chrome/common/chrome_switches.h"
#endif
......@@ -104,6 +104,9 @@ const char kInitiatorTabTitle[] = "initiatorTabTitle";
const char kMeasurementSystem[] = "measurementSystem";
// Name of a dictionary field holding the number format according to the locale.
const char kNumberFormat[] = "numberFormat";
// Name of a dictionary field specifying whether to print automatically in
// kiosk mode. See http://crbug.com/31395.
const char kPrintAutomaticallyInKioskMode[] = "printAutomaticallyInKioskMode";
// Get the print job settings dictionary from |args|. The caller takes
......@@ -638,6 +641,15 @@ void PrintPreviewHandler::SendInitialSettings(
default_printer);
initial_settings.SetString(kCloudPrintData, cloud_print_data);
#if defined(OS_MACOSX)
bool kiosk_mode = false; // No kiosk mode on Mac yet.
#else
CommandLine* cmdline = CommandLine::ForCurrentProcess();
bool kiosk_mode = (cmdline->HasSwitch(switches::kKioskMode) &&
cmdline->HasSwitch(switches::kKioskModePrinting));
#endif
initial_settings.SetBoolean(kPrintAutomaticallyInKioskMode, kiosk_mode);
if (print_preview_ui->source_is_modifiable()) {
GetLastUsedMarginSettings(&initial_settings);
GetNumberFormatAndMeasurementSystem(&initial_settings);
......
......@@ -1270,6 +1270,10 @@ const char kUseMockKeychain[] = "use-mock-keychain";
#if !defined(OS_MACOSX)
// Enables Kiosk mode.
const char kKioskMode[] = "kiosk";
// Print automatically in kiosk mode. |kKioskMode| must be set as well.
// See http://crbug.com/31395.
const char kKioskModePrinting[] = "kiosk-printing";
#endif
#if defined(TOOLKIT_VIEWS)
......
......@@ -361,6 +361,7 @@ extern const char kUseMockKeychain[];
#if !defined(OS_MACOSX)
extern const char kKioskMode[];
extern const char kKioskModePrinting[];
#endif
#if defined(TOOLKIT_VIEWS)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment