Index: chrome/browser/ui/browser.cc |
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc |
index a48f53dbe6606b933d459d163a6300f2ea1e30e1..2407dd50fc96d7dadc80bdd9d5e855cf0348feed 100644 |
--- a/chrome/browser/ui/browser.cc |
+++ b/chrome/browser/ui/browser.cc |
@@ -621,6 +621,7 @@ TabContents* Browser::OpenApplication( |
switch (container) { |
case extension_misc::LAUNCH_WINDOW: |
case extension_misc::LAUNCH_PANEL: |
+ case extension_misc::LAUNCH_SHELL: |
tab = Browser::OpenApplicationWindow(profile, extension, container, |
override_url, NULL); |
break; |
@@ -651,8 +652,18 @@ TabContents* Browser::OpenApplicationWindow( |
web_app::GenerateApplicationNameFromExtensionId(extension->id()) : |
web_app::GenerateApplicationNameFromURL(url); |
- Type type = extension && (container == extension_misc::LAUNCH_PANEL) ? |
- TYPE_PANEL : TYPE_POPUP; |
+ Type type = TYPE_POPUP; |
+ if (extension) { |
+ switch (container) { |
+ case extension_misc::LAUNCH_PANEL: |
+ type = TYPE_PANEL; |
+ break; |
+ case extension_misc::LAUNCH_SHELL: |
+ type = TYPE_SHELL; |
+ break; |
+ default: break; |
+ } |
+ } |
gfx::Rect window_bounds; |
if (extension) { |
@@ -870,6 +881,8 @@ bool Browser::ShouldSaveWindowPlacement() const { |
case TYPE_PANEL: |
// Do not save the window placement of panels. |
return false; |
+ case TYPE_SHELL: |
+ return true; |
default: |
return false; |
} |