| Index: chrome/browser/extensions/extension_host.cc
|
| diff --git a/chrome/browser/extensions/extension_host.cc b/chrome/browser/extensions/extension_host.cc
|
| index 6af23f9baa77849e52872c8545d4adad3e1ab8a7..0f82b86a4c5d78c42b74c161f4c487eb2e2deeba 100644
|
| --- a/chrome/browser/extensions/extension_host.cc
|
| +++ b/chrome/browser/extensions/extension_host.cc
|
| @@ -22,6 +22,7 @@
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/browser_list.h"
|
| #include "chrome/browser/ui/browser_window.h"
|
| +#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
|
| #include "chrome/browser/ui/webui/chrome_web_ui_factory.h"
|
| #include "chrome/common/chrome_constants.h"
|
| #include "chrome/common/extensions/extension.h"
|
| @@ -603,16 +604,19 @@ void ExtensionHost::ShowCreatedWindow(int route_id,
|
| return;
|
|
|
| if (disposition == NEW_POPUP) {
|
| - // Create a new Browser window of type TYPE_APP_POPUP.
|
| - // (AddTabContents would otherwise create a window of type TYPE_POPUP).
|
| - Browser* browser = Browser::CreateForPopup(Browser::TYPE_APP_POPUP,
|
| - contents->profile(),
|
| - contents,
|
| - initial_pos);
|
| - if (user_gesture)
|
| - browser->window()->Show();
|
| - else
|
| - browser->window()->ShowInactive();
|
| + // Find a browser with a matching profile for creating a popup.
|
| + // (If none is found, NULL argument to NavigateParams is valid).
|
| + Browser* browser = BrowserList::FindBrowserWithType(
|
| + contents->profile(),
|
| + Browser::TYPE_NORMAL,
|
| + false); // Match incognito exactly.
|
| + TabContentsWrapper* wrapper = new TabContentsWrapper(contents);
|
| + browser::NavigateParams params(browser, wrapper);
|
| + params.disposition = NEW_POPUP;
|
| + params.window_bounds = initial_pos;
|
| + params.window_action = browser::NavigateParams::SHOW_WINDOW;
|
| + params.user_gesture = user_gesture;
|
| + browser::Navigate(¶ms);
|
| return;
|
| }
|
|
|
|
|