| 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 610 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   621  |   621  | 
|   622   // This can fail if the app_id is invalid.  It can also fail if the |   622   // This can fail if the app_id is invalid.  It can also fail if the | 
|   623   // extension is external, and has not yet been installed. |   623   // extension is external, and has not yet been installed. | 
|   624   // TODO(skerner): Do something reasonable here. Pop up a warning panel? |   624   // TODO(skerner): Do something reasonable here. Pop up a warning panel? | 
|   625   // Open an URL to the gallery page of the extension id? |   625   // Open an URL to the gallery page of the extension id? | 
|   626   if (!app_id.empty()) { |   626   if (!app_id.empty()) { | 
|   627     ExtensionsService* extensions_service = profile->GetExtensionsService(); |   627     ExtensionsService* extensions_service = profile->GetExtensionsService(); | 
|   628     const Extension* extension = |   628     const Extension* extension = | 
|   629         extensions_service->GetExtensionById(app_id, false); |   629         extensions_service->GetExtensionById(app_id, false); | 
|   630  |   630  | 
|   631     // The extension with |app_id| may have been uninstalled. |   631     // The extension with id |app_id| may have been uninstalled. | 
|   632     if (!extension) |   632     if (!extension) | 
|   633       return false; |   633       return false; | 
|   634  |   634  | 
|   635     // Look at prefs to find the container in which an app should launch. |   635     // Look at preferences to find the right launch container.  If no | 
|   636     // If no preference is set, launch in a window. |   636     // preference is set, launch as a window. | 
|   637     extension_misc::LaunchContainer launch_container = |   637     extension_misc::LaunchContainer launch_container = | 
|   638         extensions_service->extension_prefs()->GetLaunchContainer( |   638         extensions_service->extension_prefs()->GetLaunchContainer( | 
|   639             extension, ExtensionPrefs::LAUNCH_WINDOW); |   639             extension, ExtensionPrefs::LAUNCH_WINDOW); | 
|   640  |   640  | 
|   641     TabContents* app_window = Browser::OpenApplication( |   641     TabContents* app_window = Browser::OpenApplication( | 
|   642         profile, extension, launch_container, NULL); |   642         profile, extension, launch_container, NULL); | 
|   643     return (app_window != NULL); |   643     return (app_window != NULL); | 
|   644   } |   644   } | 
|   645  |   645  | 
|   646   if (url_string.empty()) |   646   if (url_string.empty()) | 
|   647     return false; |   647     return false; | 
|   648  |   648  | 
|   649 #if defined(OS_WIN)  // Fix up Windows shortcuts. |   649 #if defined(OS_WIN)  // Fix up Windows shortcuts. | 
|   650   ReplaceSubstringsAfterOffset(&url_string, 0, "\\x", "%"); |   650   ReplaceSubstringsAfterOffset(&url_string, 0, "\\x", "%"); | 
|   651 #endif |   651 #endif | 
|   652   GURL url(url_string); |   652   GURL url(url_string); | 
|   653  |   653  | 
|   654   // Restrict allowed URLs for --app switch. |   654   // Restrict allowed URLs for --app switch. | 
|   655   if (!url.is_empty() && url.is_valid()) { |   655   if (!url.is_empty() && url.is_valid()) { | 
|   656     ChildProcessSecurityPolicy *policy = |   656     ChildProcessSecurityPolicy *policy = | 
|   657         ChildProcessSecurityPolicy::GetInstance(); |   657         ChildProcessSecurityPolicy::GetInstance(); | 
|   658     if (policy->IsWebSafeScheme(url.scheme()) || |   658     if (policy->IsWebSafeScheme(url.scheme()) || | 
|   659         url.SchemeIs(chrome::kFileScheme)) { |   659         url.SchemeIs(chrome::kFileScheme)) { | 
|   660       Browser::OpenApplicationWindow(profile, url); |   660       TabContents* app_tab = Browser::OpenAppShortcutWindow( | 
|   661       return true; |   661           profile, | 
 |   662           url, | 
 |   663           true);  // Update app info. | 
 |   664       return (app_tab != NULL); | 
|   662     } |   665     } | 
|   663   } |   666   } | 
|   664   return false; |   667   return false; | 
|   665 } |   668 } | 
|   666  |   669  | 
|   667 void BrowserInit::LaunchWithProfile::ProcessLaunchURLs( |   670 void BrowserInit::LaunchWithProfile::ProcessLaunchURLs( | 
|   668     bool process_startup, |   671     bool process_startup, | 
|   669     const std::vector<GURL>& urls_to_open) { |   672     const std::vector<GURL>& urls_to_open) { | 
|   670   // If we're starting up in "background mode" (no open browser window) then |   673   // If we're starting up in "background mode" (no open browser window) then | 
|   671   // don't open any browser windows. |   674   // don't open any browser windows. | 
| (...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1089     return false; |  1092     return false; | 
|  1090   automation->SetExpectedTabCount(expected_tabs); |  1093   automation->SetExpectedTabCount(expected_tabs); | 
|  1091  |  1094  | 
|  1092   AutomationProviderList* list = |  1095   AutomationProviderList* list = | 
|  1093       g_browser_process->InitAutomationProviderList(); |  1096       g_browser_process->InitAutomationProviderList(); | 
|  1094   DCHECK(list); |  1097   DCHECK(list); | 
|  1095   list->AddProvider(automation); |  1098   list->AddProvider(automation); | 
|  1096  |  1099  | 
|  1097   return true; |  1100   return true; | 
|  1098 } |  1101 } | 
| OLD | NEW |