diff options
author | jianli@chromium.org <jianli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-05 20:35:14 +0000 |
---|---|---|
committer | jianli@chromium.org <jianli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-05 20:35:14 +0000 |
commit | b35b26b360b5d84d064d63440590902d4974b59d (patch) | |
tree | f0aa8b0b32ca80ad7eb5efc1f78a5dcd45899b13 /chrome/browser/ui/browser_navigator.cc | |
parent | 4d9160ff743804acf89a5a50a0b43c113aecc1ab (diff) | |
download | chromium_src-b35b26b360b5d84d064d63440590902d4974b59d.zip chromium_src-b35b26b360b5d84d064d63440590902d4974b59d.tar.gz chromium_src-b35b26b360b5d84d064d63440590902d4974b59d.tar.bz2 |
Browser::Type cleanup.
BUG=None
TEST=Existing tests
R=ben@chromium.org,stevenjb@chromium.org,phajdan.jr@chromium.org
Review URL: http://codereview.chromium.org/6697032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84303 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ui/browser_navigator.cc')
-rw-r--r-- | chrome/browser/ui/browser_navigator.cc | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/chrome/browser/ui/browser_navigator.cc b/chrome/browser/ui/browser_navigator.cc index 6666315..c2169b7 100644 --- a/chrome/browser/ui/browser_navigator.cc +++ b/chrome/browser/ui/browser_navigator.cc @@ -19,6 +19,7 @@ #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" #include "chrome/browser/ui/webui/chrome_web_ui_factory.h" #include "chrome/common/chrome_switches.h" +#include "chrome/common/extensions/extension.h" #include "chrome/common/url_constants.h" #include "content/browser/site_instance.h" #include "content/browser/tab_contents/tab_contents.h" @@ -60,9 +61,7 @@ bool WindowCanOpenTabs(Browser* browser) { // Finds an existing Browser compatible with |profile|, making a new one if no // such Browser is located. Browser* GetOrCreateBrowser(Profile* profile) { - Browser* browser = BrowserList::FindBrowserWithType(profile, - Browser::TYPE_NORMAL, - false); + Browser* browser = BrowserList::FindTabbedBrowser(profile, false); return browser ? browser : Browser::Create(profile); } @@ -178,26 +177,32 @@ Browser* GetBrowserForDisposition(browser::NavigateParams* params) { return GetOrCreateBrowser(profile); return NULL; case NEW_POPUP: { - // Make a new popup window. Coerce app-style if |params->browser| or the - // |source| represents an app. - Browser::Type type = Browser::TYPE_POPUP; - if ((params->browser && (params->browser->type() & Browser::TYPE_APP)) || - (params->source_contents && - params->source_contents->extension_tab_helper()->is_app())) { - type = Browser::TYPE_APP_POPUP; - } + // Make a new popup window. if (profile) { - Browser* browser = new Browser(type, profile); - browser->set_override_bounds(params->window_bounds); - browser->InitBrowserWindow(); - return browser; + // Coerce app-style if |params->browser| or |source| represents an app. + std::string app_name; + if (params->browser && !params->browser->app_name().empty()) { + app_name = params->browser->app_name(); + } else if (params->source_contents && + params->source_contents->extension_tab_helper()->is_app()) { + app_name = params->source_contents->extension_tab_helper()-> + extension_app()->id(); + } + if (app_name.empty()) { + Browser::CreateParams browser_params(Browser::TYPE_POPUP, profile); + browser_params.initial_bounds = params->window_bounds; + return Browser::CreateWithParams(browser_params); + } else { + return Browser::CreateForApp(Browser::TYPE_POPUP, app_name, + params->window_bounds.size(), profile); + } } return NULL; } case NEW_WINDOW: // Make a new normal browser window. if (profile) { - Browser* browser = new Browser(Browser::TYPE_NORMAL, profile); + Browser* browser = new Browser(Browser::TYPE_TABBED, profile); browser->InitBrowserWindow(); return browser; } |