Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(666)

Side by Side Diff: chrome/browser/ui/views/ash/extension_utils.cc

Issue 10700130: Introduce LaunchParams struct for opening chrome apps. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix bad merge Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/views/ash/extension_utils.h" 5 #include "chrome/browser/ui/views/ash/extension_utils.h"
6 6
7 #include "chrome/browser/event_disposition.h" 7 #include "chrome/browser/event_disposition.h"
8 #include "chrome/browser/extensions/extension_prefs.h" 8 #include "chrome/browser/extensions/extension_prefs.h"
9 #include "chrome/browser/extensions/extension_service.h" 9 #include "chrome/browser/extensions/extension_service.h"
10 #include "chrome/browser/profiles/profile.h" 10 #include "chrome/browser/profiles/profile.h"
11 #include "chrome/browser/ui/extensions/application_launch.h" 11 #include "chrome/browser/ui/extensions/application_launch.h"
12 #include "chrome/common/extensions/extension.h" 12 #include "chrome/common/extensions/extension.h"
13 #include "googleurl/src/gurl.h" 13 #include "googleurl/src/gurl.h"
14 14
15 namespace extension_utils { 15 namespace extension_utils {
16 16
17 // Opens an extension. |event_flags| holds the flags of the event 17 // Opens an extension. |event_flags| holds the flags of the event
18 // which invokes this extension. 18 // which invokes this extension.
19 void OpenExtension(Profile* profile, 19 void OpenExtension(Profile* profile,
20 const extensions::Extension* extension, 20 const extensions::Extension* extension,
21 int event_flags) { 21 int event_flags) {
22 DCHECK(profile); 22 DCHECK(profile);
23 DCHECK(extension); 23 DCHECK(extension);
24 24
25 WindowOpenDisposition disposition = 25 WindowOpenDisposition disposition =
26 chrome::DispositionFromEventFlags(event_flags); 26 chrome::DispositionFromEventFlags(event_flags);
27 27 extension_misc::LaunchContainer container;
28 GURL url;
29 if (extension->id() == extension_misc::kWebStoreAppId)
30 url = extension->GetFullLaunchURL();
31 28
32 if (disposition == NEW_FOREGROUND_TAB || disposition == NEW_BACKGROUND_TAB) { 29 if (disposition == NEW_FOREGROUND_TAB || disposition == NEW_BACKGROUND_TAB) {
33 // Opens in a tab. 30 container = extension_misc::LAUNCH_TAB;
34 application_launch::OpenApplication(
35 profile, extension, extension_misc::LAUNCH_TAB, url, disposition, NULL);
36 } else if (disposition == NEW_WINDOW) { 31 } else if (disposition == NEW_WINDOW) {
37 // Force a new window open. 32 container = extension_misc::LAUNCH_WINDOW;
38 application_launch::OpenApplication(
39 profile, extension, extension_misc::LAUNCH_WINDOW, url,
40 disposition, NULL);
41 } else { 33 } else {
42 // Look at preference to find the right launch container. If no preference 34 // Look at preference to find the right launch container. If no preference
43 // is set, launch as a regular tab. 35 // is set, launch as a regular tab.
44 extension_misc::LaunchContainer launch_container = 36 container =
45 profile->GetExtensionService()->extension_prefs()->GetLaunchContainer( 37 profile->GetExtensionService()->extension_prefs()->GetLaunchContainer(
46 extension, extensions::ExtensionPrefs::LAUNCH_DEFAULT); 38 extension, extensions::ExtensionPrefs::LAUNCH_DEFAULT);
39 disposition = NEW_FOREGROUND_TAB;
40 }
47 41
48 application_launch::OpenApplication( 42 application_launch::OpenApplication(application_launch::LaunchParams(
49 profile, extension, launch_container, GURL(url), 43 profile, extension, container, disposition));
50 NEW_FOREGROUND_TAB, NULL);
51 }
52 } 44 }
53 45
54 } // namespace extension_utils 46 } // namespace extension_utils
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698