Index: chrome/browser/extensions/extension_tab_util.cc |
diff --git a/chrome/browser/extensions/extension_tab_util.cc b/chrome/browser/extensions/extension_tab_util.cc |
index 9e28e8c96b0369dfc02a78c307846d3d623441c4..602c47360449274db480813bf1e82df897d97497 100644 |
--- a/chrome/browser/extensions/extension_tab_util.cc |
+++ b/chrome/browser/extensions/extension_tab_util.cc |
@@ -95,8 +95,11 @@ Browser* GetBrowserInProfileWithId(Profile* profile, |
return NULL; |
} |
-Browser* CreateBrowser(Profile* profile, int window_id, std::string* error) { |
- Browser::CreateParams params(Browser::TYPE_TABBED, profile); |
+Browser* CreateBrowser(Profile* profile, |
+ int window_id, |
+ bool user_gesture, |
+ std::string* error) { |
+ Browser::CreateParams params(Browser::TYPE_TABBED, profile, user_gesture); |
Browser* browser = new Browser(params); |
browser->window()->Show(); |
return browser; |
@@ -126,6 +129,7 @@ ExtensionTabUtil::OpenTabParams::~OpenTabParams() { |
base::DictionaryValue* ExtensionTabUtil::OpenTab( |
UIThreadExtensionFunction* function, |
const OpenTabParams& params, |
+ bool user_gesture, |
std::string* error) { |
ChromeExtensionFunctionDetails chrome_details(function); |
Profile* profile = chrome_details.GetProfile(); |
@@ -139,7 +143,7 @@ base::DictionaryValue* ExtensionTabUtil::OpenTab( |
if (!params.create_browser_if_needed) { |
return NULL; |
} |
- browser = CreateBrowser(profile, window_id, error); |
+ browser = CreateBrowser(profile, window_id, user_gesture, error); |
if (!browser) |
return NULL; |
} |
@@ -215,8 +219,9 @@ base::DictionaryValue* ExtensionTabUtil::OpenTab( |
browser = chrome::FindTabbedBrowser(profile, false); |
if (!browser) { |
- browser = |
- new Browser(Browser::CreateParams(Browser::TYPE_TABBED, profile)); |
+ Browser::CreateParams params = |
+ Browser::CreateParams(Browser::TYPE_TABBED, profile, user_gesture); |
+ browser = new Browser(params); |
browser->window()->Show(); |
} |
} |
@@ -583,8 +588,10 @@ void ExtensionTabUtil::CreateTab(WebContents* web_contents, |
Profile::FromBrowserContext(web_contents->GetBrowserContext()); |
Browser* browser = chrome::FindTabbedBrowser(profile, false); |
const bool browser_created = !browser; |
- if (!browser) |
- browser = new Browser(Browser::CreateParams(profile)); |
+ if (!browser) { |
+ Browser::CreateParams params = Browser::CreateParams(profile, user_gesture); |
+ browser = new Browser(params); |
+ } |
chrome::NavigateParams params(browser, web_contents); |
// The extension_app_id parameter ends up as app_name in the Browser |
@@ -636,7 +643,7 @@ bool ExtensionTabUtil::OpenOptionsPageFromAPI( |
DCHECK(!profile->IsOffTheRecord() || IncognitoInfo::IsSplitMode(extension)); |
Browser* browser = chrome::FindBrowserWithProfile(profile); |
if (!browser) |
- browser = new Browser(Browser::CreateParams(profile)); |
+ browser = new Browser(Browser::CreateParams(profile, true)); |
return extensions::ExtensionTabUtil::OpenOptionsPage(extension, browser); |
} |