diff options
-rw-r--r-- | chrome/browser/browser_main.cc | 29 | ||||
-rw-r--r-- | chrome/browser/printing/print_dialog_cloud.cc | 35 | ||||
-rw-r--r-- | chrome/browser/printing/print_dialog_cloud.h | 4 | ||||
-rw-r--r-- | chrome/browser/ui/browser_init.cc | 5 |
4 files changed, 42 insertions, 31 deletions
diff --git a/chrome/browser/browser_main.cc b/chrome/browser/browser_main.cc index a6541b2..686b08c 100644 --- a/chrome/browser/browser_main.cc +++ b/chrome/browser/browser_main.cc @@ -61,7 +61,6 @@ #include "chrome/browser/prefs/pref_value_store.h" #include "chrome/browser/prerender/prerender_field_trial.h" #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service.h" -#include "chrome/browser/printing/print_dialog_cloud.h" #include "chrome/browser/process_singleton.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" @@ -1723,34 +1722,6 @@ int BrowserMain(const MainFunctionParams& parameters) { control->Launch(NULL, NULL); } } - if (parsed_command_line.HasSwitch(switches::kCloudPrintFile)) { - FilePath cloud_print_file; - cloud_print_file = - parsed_command_line.GetSwitchValuePath(switches::kCloudPrintFile); - if (!cloud_print_file.empty()) { - string16 print_job_title; - if (parsed_command_line.HasSwitch(switches::kCloudPrintJobTitle)) { -#ifdef OS_WIN - CommandLine::StringType native_job_title; - native_job_title = CommandLine::ForCurrentProcess()->GetSwitchValueNative( - switches::kCloudPrintJobTitle); - print_job_title = string16(native_job_title); -#elif defined(OS_POSIX) - // TODO(abodenha@chromium.org) Implement this for OS_POSIX - // Command line string types are different -#endif - } - std::string file_type = "application/pdf"; - if (parsed_command_line.HasSwitch(switches::kCloudPrintFileType)) { - file_type = parsed_command_line.GetSwitchValueASCII( - switches::kCloudPrintFileType); - } - print_dialog_cloud::CreatePrintDialogForFile(cloud_print_file, - print_job_title, - file_type, - false); - } - } #if defined(OS_CHROMEOS) // Run the Out of Memory priority manager while in this scope. Wait diff --git a/chrome/browser/printing/print_dialog_cloud.cc b/chrome/browser/printing/print_dialog_cloud.cc index 3c12b27..ea88472 100644 --- a/chrome/browser/printing/print_dialog_cloud.cc +++ b/chrome/browser/printing/print_dialog_cloud.cc @@ -6,6 +6,7 @@ #include "chrome/browser/printing/print_dialog_cloud_internal.h" #include "base/base64.h" +#include "base/command_line.h" #include "base/file_util.h" #include "base/json/json_reader.h" #include "base/values.h" @@ -16,6 +17,7 @@ #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/ui/browser_dialogs.h" #include "chrome/browser/ui/browser_list.h" +#include "chrome/common/chrome_switches.h" #include "chrome/common/pref_names.h" #include "chrome/common/print_messages.h" #include "chrome/common/url_constants.h" @@ -577,4 +579,37 @@ void CreatePrintDialogForFile(const FilePath& path_to_file, modal)); } +bool CreatePrintDialogFromCommandLine(const CommandLine& command_line) { + if (!command_line.GetSwitchValuePath(switches::kCloudPrintFile).empty()) { + FilePath cloud_print_file; + cloud_print_file = + command_line.GetSwitchValuePath(switches::kCloudPrintFile); + if (!cloud_print_file.empty()) { + string16 print_job_title; + if (command_line.HasSwitch(switches::kCloudPrintJobTitle)) { +#ifdef OS_WIN + CommandLine::StringType native_job_title; + native_job_title = command_line.GetSwitchValueNative( + switches::kCloudPrintJobTitle); + print_job_title = string16(native_job_title); +#elif defined(OS_POSIX) + // TODO(abodenha@chromium.org) Implement this for OS_POSIX + // Command line string types are different +#endif + } + std::string file_type = "application/pdf"; + if (command_line.HasSwitch(switches::kCloudPrintFileType)) { + file_type = command_line.GetSwitchValueASCII( + switches::kCloudPrintFileType); + } + print_dialog_cloud::CreatePrintDialogForFile(cloud_print_file, + print_job_title, + file_type, + false); + return true; + } + } + return false; +} + } // end namespace diff --git a/chrome/browser/printing/print_dialog_cloud.h b/chrome/browser/printing/print_dialog_cloud.h index 03bc736..1c91619 100644 --- a/chrome/browser/printing/print_dialog_cloud.h +++ b/chrome/browser/printing/print_dialog_cloud.h @@ -12,6 +12,7 @@ #include "base/string16.h" class FilePath; +class CommandLine; namespace print_dialog_cloud { @@ -22,6 +23,9 @@ void CreatePrintDialogForFile(const FilePath& path_to_file, const std::string& file_type, bool modal); +// Parse switches from command_line and display the print dialog as appropriate. +bool CreatePrintDialogFromCommandLine(const CommandLine& command_line); + } // end namespace #endif // CHROME_BROWSER_PRINTING_PRINT_DIALOG_CLOUD_H_ diff --git a/chrome/browser/ui/browser_init.cc b/chrome/browser/ui/browser_init.cc index d9e56b0..ff1f585 100644 --- a/chrome/browser/ui/browser_init.cc +++ b/chrome/browser/ui/browser_init.cc @@ -33,6 +33,7 @@ #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/prefs/session_startup_pref.h" #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service.h" +#include "chrome/browser/printing/print_dialog_cloud.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/search_engines/template_url.h" #include "chrome/browser/search_engines/template_url_model.h" @@ -1320,13 +1321,13 @@ bool BrowserInit::ProcessCmdLineImpl(const CommandLine& command_line, silent_launch = true; profile->GetCloudPrintProxyService()->ShowTokenExpiredNotification(); } + // If we are just displaying a print dialog we shouldn't open browser // windows. - if (!command_line.GetSwitchValuePath(switches::kCloudPrintFile).empty()) { + if (print_dialog_cloud::CreatePrintDialogFromCommandLine(command_line)) { silent_launch = true; } - if (command_line.HasSwitch(switches::kExplicitlyAllowedPorts)) { std::string allowed_ports = command_line.GetSwitchValueASCII(switches::kExplicitlyAllowedPorts); |