| OLD | NEW | 
|     1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |     1 // Copyright (c) 2010 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/browser_init.h" |     5 #include "chrome/browser/ui/browser_init.h" | 
|     6  |     6  | 
|     7 #include <algorithm>   // For max(). |     7 #include <algorithm>   // For max(). | 
|     8  |     8  | 
|     9 #include "app/l10n_util.h" |     9 #include "app/l10n_util.h" | 
|    10 #include "app/resource_bundle.h" |    10 #include "app/resource_bundle.h" | 
| (...skipping 986 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   997       if (command_line.HasSwitch(switches::kNoStartupWindow)) { |   997       if (command_line.HasSwitch(switches::kNoStartupWindow)) { | 
|   998         expected_tab_count = 0; |   998         expected_tab_count = 0; | 
|   999       } else if (command_line.HasSwitch(switches::kRestoreLastSession)) { |   999       } else if (command_line.HasSwitch(switches::kRestoreLastSession)) { | 
|  1000         std::string restore_session_value( |  1000         std::string restore_session_value( | 
|  1001             command_line.GetSwitchValueASCII(switches::kRestoreLastSession)); |  1001             command_line.GetSwitchValueASCII(switches::kRestoreLastSession)); | 
|  1002         base::StringToInt(restore_session_value, &expected_tab_count); |  1002         base::StringToInt(restore_session_value, &expected_tab_count); | 
|  1003       } else { |  1003       } else { | 
|  1004         expected_tab_count = |  1004         expected_tab_count = | 
|  1005             std::max(1, static_cast<int>(command_line.args().size())); |  1005             std::max(1, static_cast<int>(command_line.args().size())); | 
|  1006       } |  1006       } | 
|  1007       CreateAutomationProvider<TestingAutomationProvider>( |  1007       if (!CreateAutomationProvider<TestingAutomationProvider>( | 
|  1008           testing_channel_id, |  1008           testing_channel_id, | 
|  1009           profile, |  1009           profile, | 
|  1010           static_cast<size_t>(expected_tab_count)); |  1010           static_cast<size_t>(expected_tab_count))) | 
 |  1011         return false; | 
|  1011     } |  1012     } | 
|  1012   } |  1013   } | 
|  1013  |  1014  | 
|  1014   bool silent_launch = false; |  1015   bool silent_launch = false; | 
|  1015  |  1016  | 
|  1016   if (command_line.HasSwitch(switches::kAutomationClientChannelID)) { |  1017   if (command_line.HasSwitch(switches::kAutomationClientChannelID)) { | 
|  1017     std::string automation_channel_id = command_line.GetSwitchValueASCII( |  1018     std::string automation_channel_id = command_line.GetSwitchValueASCII( | 
|  1018         switches::kAutomationClientChannelID); |  1019         switches::kAutomationClientChannelID); | 
|  1019     // If there are any extra parameters, we expect each one to generate a |  1020     // If there are any extra parameters, we expect each one to generate a | 
|  1020     // new tab; if there are none then we have no tabs |  1021     // new tab; if there are none then we have no tabs | 
|  1021     size_t expected_tabs = |  1022     size_t expected_tabs = | 
|  1022         std::max(static_cast<int>(command_line.args().size()), 0); |  1023         std::max(static_cast<int>(command_line.args().size()), 0); | 
|  1023     if (expected_tabs == 0) |  1024     if (expected_tabs == 0) | 
|  1024       silent_launch = true; |  1025       silent_launch = true; | 
|  1025  |  1026  | 
|  1026     if (command_line.HasSwitch(switches::kChromeFrame)) { |  1027     if (command_line.HasSwitch(switches::kChromeFrame)) { | 
|  1027       CreateAutomationProvider<ChromeFrameAutomationProvider>( |  1028       if (!CreateAutomationProvider<ChromeFrameAutomationProvider>( | 
|  1028           automation_channel_id, profile, expected_tabs); |  1029           automation_channel_id, profile, expected_tabs)) | 
 |  1030         return false; | 
|  1029     } else { |  1031     } else { | 
|  1030       CreateAutomationProvider<AutomationProvider>(automation_channel_id, |  1032       if (!CreateAutomationProvider<AutomationProvider>( | 
|  1031                                                    profile, expected_tabs); |  1033           automation_channel_id, profile, expected_tabs)) | 
 |  1034         return false; | 
|  1032     } |  1035     } | 
|  1033   } |  1036   } | 
|  1034  |  1037  | 
|  1035   // If we have been invoked to display a desktop notification on behalf of |  1038   // If we have been invoked to display a desktop notification on behalf of | 
|  1036   // the service process, we do not want to open any browser windows. |  1039   // the service process, we do not want to open any browser windows. | 
|  1037   if (command_line.HasSwitch(switches::kNotifyCloudPrintTokenExpired)) { |  1040   if (command_line.HasSwitch(switches::kNotifyCloudPrintTokenExpired)) { | 
|  1038     silent_launch = true; |  1041     silent_launch = true; | 
|  1039     profile->GetCloudPrintProxyService()->ShowTokenExpiredNotification(); |  1042     profile->GetCloudPrintProxyService()->ShowTokenExpiredNotification(); | 
|  1040   } |  1043   } | 
|  1041  |  1044  | 
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1080   // If we don't want to launch a new browser window or tab (in the case |  1083   // If we don't want to launch a new browser window or tab (in the case | 
|  1081   // of an automation request), we are done here. |  1084   // of an automation request), we are done here. | 
|  1082   if (!silent_launch) { |  1085   if (!silent_launch) { | 
|  1083     return browser_init->LaunchBrowser( |  1086     return browser_init->LaunchBrowser( | 
|  1084         command_line, profile, cur_dir, process_startup, return_code); |  1087         command_line, profile, cur_dir, process_startup, return_code); | 
|  1085   } |  1088   } | 
|  1086   return true; |  1089   return true; | 
|  1087 } |  1090 } | 
|  1088  |  1091  | 
|  1089 template <class AutomationProviderClass> |  1092 template <class AutomationProviderClass> | 
|  1090 void BrowserInit::CreateAutomationProvider(const std::string& channel_id, |  1093 bool BrowserInit::CreateAutomationProvider(const std::string& channel_id, | 
|  1091                                            Profile* profile, |  1094                                            Profile* profile, | 
|  1092                                            size_t expected_tabs) { |  1095                                            size_t expected_tabs) { | 
|  1093   scoped_refptr<AutomationProviderClass> automation = |  1096   scoped_refptr<AutomationProviderClass> automation = | 
|  1094       new AutomationProviderClass(profile); |  1097       new AutomationProviderClass(profile); | 
|  1095   automation->ConnectToChannel(channel_id); |  1098  | 
 |  1099   if (!automation->InitializeChannel(channel_id)) | 
 |  1100     return false; | 
|  1096   automation->SetExpectedTabCount(expected_tabs); |  1101   automation->SetExpectedTabCount(expected_tabs); | 
|  1097  |  1102  | 
|  1098   AutomationProviderList* list = |  1103   AutomationProviderList* list = | 
|  1099       g_browser_process->InitAutomationProviderList(); |  1104       g_browser_process->InitAutomationProviderList(); | 
|  1100   DCHECK(list); |  1105   DCHECK(list); | 
|  1101   list->AddProvider(automation); |  1106   list->AddProvider(automation); | 
 |  1107  | 
 |  1108   return true; | 
|  1102 } |  1109 } | 
| OLD | NEW |