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

Side by Side Diff: chrome/browser/ui/webui/print_preview_handler.cc

Issue 8915027: Print preview: A quick hack to support printing to the default printer without user confirmation ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years 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 #include "chrome/browser/ui/webui/print_preview_handler.h" 5 #include "chrome/browser/ui/webui/print_preview_handler.h"
6 6
7 #include <ctype.h> 7 #include <ctype.h>
8 8
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 #include "content/browser/tab_contents/tab_contents.h" 44 #include "content/browser/tab_contents/tab_contents.h"
45 #include "content/public/browser/browser_thread.h" 45 #include "content/public/browser/browser_thread.h"
46 #include "printing/backend/print_backend.h" 46 #include "printing/backend/print_backend.h"
47 #include "printing/metafile.h" 47 #include "printing/metafile.h"
48 #include "printing/metafile_impl.h" 48 #include "printing/metafile_impl.h"
49 #include "printing/page_range.h" 49 #include "printing/page_range.h"
50 #include "printing/page_size_margins.h" 50 #include "printing/page_size_margins.h"
51 #include "printing/print_settings.h" 51 #include "printing/print_settings.h"
52 #include "unicode/ulocdata.h" 52 #include "unicode/ulocdata.h"
53 53
54 #if !defined(OS_CHROMEOS) 54 #if !defined(OS_MACOSX)
55 #include "base/command_line.h" 55 #include "base/command_line.h"
56 #include "chrome/common/chrome_switches.h" 56 #include "chrome/common/chrome_switches.h"
57 #endif 57 #endif
58 58
59 using content::BrowserThread; 59 using content::BrowserThread;
60 using printing::Metafile; 60 using printing::Metafile;
61 61
62 namespace { 62 namespace {
63 63
64 enum UserActionBuckets { 64 enum UserActionBuckets {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 97
98 // Name of a dictionary fielad holdong cloud print related data; 98 // Name of a dictionary fielad holdong cloud print related data;
99 const char kCloudPrintData[] = "cloudPrintData"; 99 const char kCloudPrintData[] = "cloudPrintData";
100 // Name of a dictionary field holding the initiator tab title. 100 // Name of a dictionary field holding the initiator tab title.
101 const char kInitiatorTabTitle[] = "initiatorTabTitle"; 101 const char kInitiatorTabTitle[] = "initiatorTabTitle";
102 // Name of a dictionary field holding the measurement system according to the 102 // Name of a dictionary field holding the measurement system according to the
103 // locale. 103 // locale.
104 const char kMeasurementSystem[] = "measurementSystem"; 104 const char kMeasurementSystem[] = "measurementSystem";
105 // Name of a dictionary field holding the number format according to the locale. 105 // Name of a dictionary field holding the number format according to the locale.
106 const char kNumberFormat[] = "numberFormat"; 106 const char kNumberFormat[] = "numberFormat";
107 // Name of a dictionary field specifying whether to print automatically in
108 // kiosk mode. See http://crbug.com/31395.
109 const char kPrintAutomaticallyInKioskMode[] = "printAutomaticallyInKioskMode";
107 110
108 111
109 // Get the print job settings dictionary from |args|. The caller takes 112 // Get the print job settings dictionary from |args|. The caller takes
110 // ownership of the returned DictionaryValue. Returns NULL on failure. 113 // ownership of the returned DictionaryValue. Returns NULL on failure.
111 DictionaryValue* GetSettingsDictionary(const ListValue* args) { 114 DictionaryValue* GetSettingsDictionary(const ListValue* args) {
112 std::string json_str; 115 std::string json_str;
113 if (!args->GetString(0, &json_str)) { 116 if (!args->GetString(0, &json_str)) {
114 NOTREACHED() << "Could not read JSON argument"; 117 NOTREACHED() << "Could not read JSON argument";
115 return NULL; 118 return NULL;
116 } 119 }
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 634
632 base::DictionaryValue initial_settings; 635 base::DictionaryValue initial_settings;
633 initial_settings.SetString(kInitiatorTabTitle, 636 initial_settings.SetString(kInitiatorTabTitle,
634 print_preview_ui->initiator_tab_title()); 637 print_preview_ui->initiator_tab_title());
635 initial_settings.SetBoolean(printing::kSettingPreviewModifiable, 638 initial_settings.SetBoolean(printing::kSettingPreviewModifiable,
636 print_preview_ui->source_is_modifiable()); 639 print_preview_ui->source_is_modifiable());
637 initial_settings.SetString(printing::kSettingPrinterName, 640 initial_settings.SetString(printing::kSettingPrinterName,
638 default_printer); 641 default_printer);
639 initial_settings.SetString(kCloudPrintData, cloud_print_data); 642 initial_settings.SetString(kCloudPrintData, cloud_print_data);
640 643
644 #if defined(OS_MACOSX)
645 bool kiosk_mode = false; // No kiosk mode on Mac yet.
646 #else
647 CommandLine* cmdline = CommandLine::ForCurrentProcess();
648 bool kiosk_mode = (cmdline->HasSwitch(switches::kKioskMode) &&
649 cmdline->HasSwitch(switches::kKioskModePrinting));
650 #endif
651 initial_settings.SetBoolean(kPrintAutomaticallyInKioskMode, kiosk_mode);
652
641 if (print_preview_ui->source_is_modifiable()) { 653 if (print_preview_ui->source_is_modifiable()) {
642 GetLastUsedMarginSettings(&initial_settings); 654 GetLastUsedMarginSettings(&initial_settings);
643 GetNumberFormatAndMeasurementSystem(&initial_settings); 655 GetNumberFormatAndMeasurementSystem(&initial_settings);
644 } 656 }
645 web_ui_->CallJavascriptFunction("setInitialSettings", initial_settings); 657 web_ui_->CallJavascriptFunction("setInitialSettings", initial_settings);
646 } 658 }
647 659
648 void PrintPreviewHandler::ActivateInitiatorTabAndClosePreviewTab() { 660 void PrintPreviewHandler::ActivateInitiatorTabAndClosePreviewTab() {
649 TabContentsWrapper* initiator_tab = GetInitiatorTab(); 661 TabContentsWrapper* initiator_tab = GetInitiatorTab();
650 if (initiator_tab) { 662 if (initiator_tab) {
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
838 return; 850 return;
839 851
840 // We no longer require the initiator tab details. Remove those details 852 // We no longer require the initiator tab details. Remove those details
841 // associated with the preview tab to allow the initiator tab to create 853 // associated with the preview tab to allow the initiator tab to create
842 // another preview tab. 854 // another preview tab.
843 printing::PrintPreviewTabController* tab_controller = 855 printing::PrintPreviewTabController* tab_controller =
844 printing::PrintPreviewTabController::GetInstance(); 856 printing::PrintPreviewTabController::GetInstance();
845 if (tab_controller) 857 if (tab_controller)
846 tab_controller->EraseInitiatorTabInfo(preview_tab_wrapper()); 858 tab_controller->EraseInitiatorTabInfo(preview_tab_wrapper());
847 } 859 }
OLDNEW
« no previous file with comments | « chrome/browser/resources/print_preview/print_preview.js ('k') | chrome/common/chrome_switches.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698