summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/browser_main.cc29
-rw-r--r--chrome/browser/printing/print_dialog_cloud.cc35
-rw-r--r--chrome/browser/printing/print_dialog_cloud.h4
-rw-r--r--chrome/browser/ui/browser_init.cc5
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);