| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/print_preview_handler.h" | 5 #include "chrome/browser/ui/webui/print_preview/print_preview_handler.h" |
| 6 | 6 |
| 7 #include <ctype.h> | 7 #include <ctype.h> |
| 8 | 8 |
| 9 #include <map> | 9 #include <map> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 162 // Dictionary field to indicate whether Chrome is running in forced app (app | 162 // Dictionary field to indicate whether Chrome is running in forced app (app |
| 163 // kiosk) mode. It's not the same as desktop Chrome kiosk (the one above). | 163 // kiosk) mode. It's not the same as desktop Chrome kiosk (the one above). |
| 164 const char kAppKioskMode[] = "appKioskMode"; | 164 const char kAppKioskMode[] = "appKioskMode"; |
| 165 // Dictionary field to store Cloud Print base URL. | 165 // Dictionary field to store Cloud Print base URL. |
| 166 const char kCloudPrintUrl[] = "cloudPrintUrl"; | 166 const char kCloudPrintUrl[] = "cloudPrintUrl"; |
| 167 #if defined(OS_WIN) | 167 #if defined(OS_WIN) |
| 168 const char kHidePrintWithSystemDialogLink[] = "hidePrintWithSystemDialogLink"; | 168 const char kHidePrintWithSystemDialogLink[] = "hidePrintWithSystemDialogLink"; |
| 169 #endif | 169 #endif |
| 170 // Name of a dictionary field holding the state of selection for document. | 170 // Name of a dictionary field holding the state of selection for document. |
| 171 const char kDocumentHasSelection[] = "documentHasSelection"; | 171 const char kDocumentHasSelection[] = "documentHasSelection"; |
| 172 // Dictionary field holding the default destination selection rules. |
| 173 const char kDefaultDestinationSelectionRules[] = |
| 174 "defaultDestinationSelectionRules"; |
| 172 | 175 |
| 173 // Id of the predefined PDF printer. | 176 // Id of the predefined PDF printer. |
| 174 const char kLocalPdfPrinterId[] = "Save as PDF"; | 177 const char kLocalPdfPrinterId[] = "Save as PDF"; |
| 175 | 178 |
| 176 // Additional printer capability setting keys. | 179 // Additional printer capability setting keys. |
| 177 const char kPrinterId[] = "printerId"; | 180 const char kPrinterId[] = "printerId"; |
| 178 const char kPrinterCapabilities[] = "capabilities"; | 181 const char kPrinterCapabilities[] = "capabilities"; |
| 179 | 182 |
| 180 // Get the print job settings dictionary from |args|. The caller takes | 183 // Get the print job settings dictionary from |args|. The caller takes |
| 181 // ownership of the returned DictionaryValue. Returns NULL on failure. | 184 // ownership of the returned DictionaryValue. Returns NULL on failure. |
| (...skipping 1067 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1249 base::DictionaryValue initial_settings; | 1252 base::DictionaryValue initial_settings; |
| 1250 initial_settings.SetString(kInitiatorTitle, | 1253 initial_settings.SetString(kInitiatorTitle, |
| 1251 print_preview_ui()->initiator_title()); | 1254 print_preview_ui()->initiator_title()); |
| 1252 initial_settings.SetBoolean(printing::kSettingPreviewModifiable, | 1255 initial_settings.SetBoolean(printing::kSettingPreviewModifiable, |
| 1253 print_preview_ui()->source_is_modifiable()); | 1256 print_preview_ui()->source_is_modifiable()); |
| 1254 initial_settings.SetString(printing::kSettingPrinterName, default_printer); | 1257 initial_settings.SetString(printing::kSettingPrinterName, default_printer); |
| 1255 initial_settings.SetBoolean(kDocumentHasSelection, | 1258 initial_settings.SetBoolean(kDocumentHasSelection, |
| 1256 print_preview_ui()->source_has_selection()); | 1259 print_preview_ui()->source_has_selection()); |
| 1257 initial_settings.SetBoolean(printing::kSettingShouldPrintSelectionOnly, | 1260 initial_settings.SetBoolean(printing::kSettingShouldPrintSelectionOnly, |
| 1258 print_preview_ui()->print_selection_only()); | 1261 print_preview_ui()->print_selection_only()); |
| 1262 PrefService* prefs = Profile::FromBrowserContext( |
| 1263 preview_web_contents()->GetBrowserContext())->GetPrefs(); |
| 1259 printing::StickySettings* sticky_settings = GetStickySettings(); | 1264 printing::StickySettings* sticky_settings = GetStickySettings(); |
| 1260 sticky_settings->RestoreFromPrefs(Profile::FromBrowserContext( | 1265 sticky_settings->RestoreFromPrefs(prefs); |
| 1261 preview_web_contents()->GetBrowserContext())->GetPrefs()); | |
| 1262 if (sticky_settings->printer_app_state()) { | 1266 if (sticky_settings->printer_app_state()) { |
| 1263 initial_settings.SetString(kAppState, | 1267 initial_settings.SetString(kAppState, |
| 1264 *sticky_settings->printer_app_state()); | 1268 *sticky_settings->printer_app_state()); |
| 1265 } | 1269 } |
| 1266 | 1270 |
| 1267 base::CommandLine* cmdline = base::CommandLine::ForCurrentProcess(); | 1271 base::CommandLine* cmdline = base::CommandLine::ForCurrentProcess(); |
| 1268 initial_settings.SetBoolean(kPrintAutomaticallyInKioskMode, | 1272 initial_settings.SetBoolean(kPrintAutomaticallyInKioskMode, |
| 1269 cmdline->HasSwitch(switches::kKioskModePrinting)); | 1273 cmdline->HasSwitch(switches::kKioskModePrinting)); |
| 1270 initial_settings.SetBoolean(kAppKioskMode, | 1274 initial_settings.SetBoolean(kAppKioskMode, |
| 1271 chrome::IsRunningInForcedAppMode()); | 1275 chrome::IsRunningInForcedAppMode()); |
| 1272 #if defined(OS_WIN) | 1276 #if defined(OS_WIN) |
| 1273 // In Win8 metro, the system print dialog can only open on the desktop. Doing | 1277 // In Win8 metro, the system print dialog can only open on the desktop. Doing |
| 1274 // so will cause the browser to appear hung, so we don't show the link in | 1278 // so will cause the browser to appear hung, so we don't show the link in |
| 1275 // metro. | 1279 // metro. |
| 1276 bool is_ash = (chrome::GetActiveDesktop() == chrome::HOST_DESKTOP_TYPE_ASH); | 1280 bool is_ash = (chrome::GetActiveDesktop() == chrome::HOST_DESKTOP_TYPE_ASH); |
| 1277 initial_settings.SetBoolean(kHidePrintWithSystemDialogLink, is_ash); | 1281 initial_settings.SetBoolean(kHidePrintWithSystemDialogLink, is_ash); |
| 1278 #endif | 1282 #endif |
| 1283 if (prefs) { |
| 1284 const std::string rules_str = |
| 1285 prefs->GetString(prefs::kPrintPreviewDefaultDestinationSelectionRules); |
| 1286 if (!rules_str.empty()) |
| 1287 initial_settings.SetString(kDefaultDestinationSelectionRules, rules_str); |
| 1288 } |
| 1279 | 1289 |
| 1280 if (print_preview_ui()->source_is_modifiable()) | 1290 if (print_preview_ui()->source_is_modifiable()) |
| 1281 GetNumberFormatAndMeasurementSystem(&initial_settings); | 1291 GetNumberFormatAndMeasurementSystem(&initial_settings); |
| 1282 web_ui()->CallJavascriptFunction("setInitialSettings", initial_settings); | 1292 web_ui()->CallJavascriptFunction("setInitialSettings", initial_settings); |
| 1283 | 1293 |
| 1284 WebContents* initiator = GetInitiator(); | 1294 WebContents* initiator = GetInitiator(); |
| 1285 if (initiator && cmdline->HasSwitch(switches::kEnableDomDistiller) && | 1295 if (initiator && cmdline->HasSwitch(switches::kEnableDomDistiller) && |
| 1286 dom_distiller::url_utils::IsUrlDistillable( | 1296 dom_distiller::url_utils::IsUrlDistillable( |
| 1287 initiator->GetLastCommittedURL())) { | 1297 initiator->GetLastCommittedURL())) { |
| 1288 dom_distiller::IsDistillablePage( | 1298 dom_distiller::IsDistillablePage( |
| (...skipping 517 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1806 | 1816 |
| 1807 void PrintPreviewHandler::UnregisterForGaiaCookieChanges() { | 1817 void PrintPreviewHandler::UnregisterForGaiaCookieChanges() { |
| 1808 if (gaia_cookie_manager_service_) | 1818 if (gaia_cookie_manager_service_) |
| 1809 gaia_cookie_manager_service_->RemoveObserver(this); | 1819 gaia_cookie_manager_service_->RemoveObserver(this); |
| 1810 } | 1820 } |
| 1811 | 1821 |
| 1812 void PrintPreviewHandler::SetPdfSavedClosureForTesting( | 1822 void PrintPreviewHandler::SetPdfSavedClosureForTesting( |
| 1813 const base::Closure& closure) { | 1823 const base::Closure& closure) { |
| 1814 pdf_file_saved_closure_ = closure; | 1824 pdf_file_saved_closure_ = closure; |
| 1815 } | 1825 } |
| OLD | NEW |