| 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/extensions/application_launch.h" | 5 #include "chrome/browser/ui/extensions/application_launch.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "apps/launcher.h" | 9 #include "apps/launcher.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 #include "chrome/common/url_constants.h" | 33 #include "chrome/common/url_constants.h" |
| 34 #include "content/public/browser/render_view_host.h" | 34 #include "content/public/browser/render_view_host.h" |
| 35 #include "content/public/browser/web_contents.h" | 35 #include "content/public/browser/web_contents.h" |
| 36 #include "content/public/browser/web_contents_view.h" | 36 #include "content/public/browser/web_contents_view.h" |
| 37 #include "content/public/common/renderer_preferences.h" | 37 #include "content/public/common/renderer_preferences.h" |
| 38 #include "extensions/browser/extension_prefs.h" | 38 #include "extensions/browser/extension_prefs.h" |
| 39 #include "extensions/browser/extension_registry.h" | 39 #include "extensions/browser/extension_registry.h" |
| 40 #include "extensions/browser/extension_system.h" | 40 #include "extensions/browser/extension_system.h" |
| 41 #include "extensions/common/constants.h" | 41 #include "extensions/common/constants.h" |
| 42 #include "extensions/common/extension.h" | 42 #include "extensions/common/extension.h" |
| 43 #include "extensions/common/features/feature.h" |
| 44 #include "extensions/common/features/feature_provider.h" |
| 43 #include "grit/generated_resources.h" | 45 #include "grit/generated_resources.h" |
| 44 #include "ui/base/window_open_disposition.h" | 46 #include "ui/base/window_open_disposition.h" |
| 45 #include "ui/gfx/rect.h" | 47 #include "ui/gfx/rect.h" |
| 46 | 48 |
| 47 #if defined(OS_MACOSX) | 49 #if defined(OS_MACOSX) |
| 48 #include "chrome/browser/ui/browser_commands_mac.h" | 50 #include "chrome/browser/ui/browser_commands_mac.h" |
| 49 #endif | 51 #endif |
| 50 | 52 |
| 51 using content::WebContents; | 53 using content::WebContents; |
| 52 using extensions::Extension; | 54 using extensions::Extension; |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 316 return NULL; | 318 return NULL; |
| 317 Profile* profile = params.profile; | 319 Profile* profile = params.profile; |
| 318 | 320 |
| 319 WebContents* tab = NULL; | 321 WebContents* tab = NULL; |
| 320 ExtensionPrefs* prefs = ExtensionPrefs::Get(profile); | 322 ExtensionPrefs* prefs = ExtensionPrefs::Get(profile); |
| 321 prefs->SetActiveBit(extension->id(), true); | 323 prefs->SetActiveBit(extension->id(), true); |
| 322 | 324 |
| 323 UMA_HISTOGRAM_ENUMERATION( | 325 UMA_HISTOGRAM_ENUMERATION( |
| 324 "Extensions.AppLaunchContainer", params.container, 100); | 326 "Extensions.AppLaunchContainer", params.container, 100); |
| 325 | 327 |
| 326 if (extension->is_platform_app()) { | 328 if (LaunchesViaEvent(extension)) { |
| 327 // Remember what desktop the launch happened on so that when the app opens a | 329 // Remember what desktop the launch happened on so that when the app opens a |
| 328 // window we can open them on the right desktop. | 330 // window we can open them on the right desktop. |
| 329 PerAppSettingsServiceFactory::GetForBrowserContext(profile)-> | 331 PerAppSettingsServiceFactory::GetForBrowserContext(profile)-> |
| 330 SetDesktopLastLaunchedFrom(extension->id(), params.desktop_type); | 332 SetDesktopLastLaunchedFrom(extension->id(), params.desktop_type); |
| 331 | 333 |
| 332 apps::LaunchPlatformAppWithCommandLine( | 334 apps::LaunchPlatformAppWithCommandLine( |
| 333 profile, extension, params.command_line, params.current_directory); | 335 profile, extension, params.command_line, params.current_directory); |
| 334 return NULL; | 336 return NULL; |
| 335 } | 337 } |
| 336 | 338 |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 460 // up in LoadingStateChanged to schedule a GetApplicationInfo. And when | 462 // up in LoadingStateChanged to schedule a GetApplicationInfo. And when |
| 461 // the web app info is available, extensions::TabHelper notifies Browser via | 463 // the web app info is available, extensions::TabHelper notifies Browser via |
| 462 // OnDidGetApplicationInfo, which calls | 464 // OnDidGetApplicationInfo, which calls |
| 463 // web_app::UpdateShortcutForTabContents when it sees UPDATE_SHORTCUT as | 465 // web_app::UpdateShortcutForTabContents when it sees UPDATE_SHORTCUT as |
| 464 // pending web app action. | 466 // pending web app action. |
| 465 extensions::TabHelper::FromWebContents(tab)->set_pending_web_app_action( | 467 extensions::TabHelper::FromWebContents(tab)->set_pending_web_app_action( |
| 466 extensions::TabHelper::UPDATE_SHORTCUT); | 468 extensions::TabHelper::UPDATE_SHORTCUT); |
| 467 | 469 |
| 468 return tab; | 470 return tab; |
| 469 } | 471 } |
| 472 |
| 473 bool LaunchesViaEvent(const extensions::Extension* extension) { |
| 474 extensions::FeatureProvider* feature_provider = |
| 475 extensions::FeatureProvider::GetAPIFeatures(); |
| 476 extensions::Feature* feature = feature_provider->GetFeature("app.runtime"); |
| 477 return feature->IsAvailableToExtension(extension).is_available(); |
| 478 } |
| OLD | NEW |