| Index: chrome/browser/browser.cc
|
| diff --git a/chrome/browser/browser.cc b/chrome/browser/browser.cc
|
| index 1d2c82f1f5621d01736f7be9ad290cc47d9adbed..13bfbc1a238e036c5ca0d8707bbc433e1ca63086 100644
|
| --- a/chrome/browser/browser.cc
|
| +++ b/chrome/browser/browser.cc
|
| @@ -47,6 +47,7 @@
|
| #include "chrome/browser/extensions/extension_browser_event_router.h"
|
| #include "chrome/browser/extensions/extension_disabled_infobar_delegate.h"
|
| #include "chrome/browser/extensions/extension_host.h"
|
| +#include "chrome/browser/extensions/extension_prefs.h"
|
| #include "chrome/browser/extensions/extension_tabs_module.h"
|
| #include "chrome/browser/extensions/extensions_service.h"
|
| #include "chrome/browser/find_bar.h"
|
| @@ -556,16 +557,28 @@ TabContents* Browser::OpenApplicationTab(Profile* profile,
|
| Extension* extension,
|
| Browser** browser) {
|
| Browser* local_browser = BrowserList::GetLastActiveWithProfile(profile);
|
| + TabContents* tab_contents = NULL;
|
| if (!local_browser || local_browser->type() != Browser::TYPE_NORMAL)
|
| - return NULL;
|
| + return tab_contents;
|
| +
|
| + // Check the prefs for overridden mode.
|
| + ExtensionsService* extensions_service = profile->GetExtensionsService();
|
| + DCHECK(extensions_service);
|
|
|
| - // TODO(erikkay): This doesn't seem like the right transition in all cases.
|
| - PageTransition::Type transition = PageTransition::START_PAGE;
|
| + ExtensionPrefs::LaunchType launch_type =
|
| + extensions_service->extension_prefs()->GetLaunchType(extension->id());
|
| + int add_type = TabStripModel::ADD_SELECTED;
|
| + if (launch_type == ExtensionPrefs::LAUNCH_PINNED)
|
| + add_type |= TabStripModel::ADD_PINNED;
|
|
|
| - return local_browser->AddTabWithURL(
|
| - extension->GetFullLaunchURL(), GURL(), transition, -1,
|
| - TabStripModel::ADD_PINNED | TabStripModel::ADD_SELECTED,
|
| - NULL, "", browser);
|
| + // TODO(erikkay): START_PAGE doesn't seem like the right transition in all
|
| + // cases.
|
| + tab_contents = local_browser->AddTabWithURL(extension->GetFullLaunchURL(),
|
| + GURL(), PageTransition::START_PAGE, -1, add_type, NULL, "", browser);
|
| + if (launch_type == ExtensionPrefs::LAUNCH_FULLSCREEN)
|
| + local_browser->window()->SetFullscreen(true);
|
| +
|
| + return tab_contents;
|
| }
|
|
|
| // static
|
|
|