| 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 d5feb70183a271e5aec92d7e595b1deb81a163d8..706f41e009130deadd8baeca5763a635f234adb9 100644
|
| --- a/chrome/browser/extensions/extension_tab_util.cc
|
| +++ b/chrome/browser/extensions/extension_tab_util.cc
|
| @@ -590,35 +590,26 @@ bool ExtensionTabUtil::OpenOptionsPage(const Extension* extension,
|
| browser = displayer->browser();
|
| }
|
|
|
| - if (!OptionsPageInfo::ShouldOpenInTab(extension)) {
|
| - // If we should embed the options page for this extension, open
|
| - // chrome://extensions in a new tab and show the extension options in an
|
| - // embedded popup.
|
| - chrome::NavigateParams params(chrome::GetSingletonTabNavigateParams(
|
| - browser, GURL(chrome::kChromeUIExtensionsURL)));
|
| - params.path_behavior = chrome::NavigateParams::IGNORE_AND_NAVIGATE;
|
| -
|
| + GURL url_to_navigate;
|
| + if (OptionsPageInfo::ShouldOpenInTab(extension)) {
|
| + // Options page tab is simply e.g. chrome-extension://.../options.html.
|
| + url_to_navigate = OptionsPageInfo::GetOptionsPage(extension);
|
| + } else {
|
| + // Options page tab is Extension settings pointed at that Extension's ID,
|
| + // e.g. chrome://extensions?options=...
|
| + url_to_navigate = GURL(chrome::kChromeUIExtensionsURL);
|
| GURL::Replacements replacements;
|
| std::string query =
|
| base::StringPrintf("options=%s", extension->id().c_str());
|
| replacements.SetQueryStr(query);
|
| - params.url = params.url.ReplaceComponents(replacements);
|
| -
|
| - chrome::ShowSingletonTabOverwritingNTP(browser, params);
|
| - } else {
|
| - // Otherwise open a new tab with the extension's options page
|
| - content::OpenURLParams params(OptionsPageInfo::GetOptionsPage(extension),
|
| - content::Referrer(),
|
| - SINGLETON_TAB,
|
| - ui::PAGE_TRANSITION_LINK,
|
| - false);
|
| - browser->OpenURL(params);
|
| - browser->window()->Show();
|
| - WebContents* web_contents =
|
| - browser->tab_strip_model()->GetActiveWebContents();
|
| - web_contents->GetDelegate()->ActivateContents(web_contents);
|
| + url_to_navigate = url_to_navigate.ReplaceComponents(replacements);
|
| }
|
|
|
| + chrome::NavigateParams params(
|
| + chrome::GetSingletonTabNavigateParams(browser, url_to_navigate));
|
| + params.path_behavior = chrome::NavigateParams::IGNORE_AND_NAVIGATE;
|
| + params.url = url_to_navigate;
|
| + chrome::ShowSingletonTabOverwritingNTP(browser, params);
|
| return true;
|
| }
|
|
|
|
|