Chromium Code Reviews| Index: chrome/browser/ui/webui/options/chromeos/cros_language_options_handler.cc |
| diff --git a/chrome/browser/ui/webui/options/chromeos/cros_language_options_handler.cc b/chrome/browser/ui/webui/options/chromeos/cros_language_options_handler.cc |
| index 8bbcbb67227f293ec589490f5141183130271594..284e70b2963b71d8c2b416246b950e5ecdbb429b 100644 |
| --- a/chrome/browser/ui/webui/options/chromeos/cros_language_options_handler.cc |
| +++ b/chrome/browser/ui/webui/options/chromeos/cros_language_options_handler.cc |
| @@ -24,6 +24,8 @@ |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/browser_finder.h" |
| +#include "chrome/browser/ui/browser_window.h" |
| +#include "chrome/browser/ui/tabs/tab_strip_model.h" |
| #include "chrome/common/extensions/manifest_url_handler.h" |
| #include "chromeos/ime/component_extension_ime_manager.h" |
| #include "chromeos/ime/extension_ime_util.h" |
| @@ -354,16 +356,23 @@ void CrosLanguageOptionsHandler::InputMethodOptionsOpenCallback( |
| extension_ime_util::GetExtensionIDFromInputMethodID(input_method_id); |
| if (extension_id.empty()) |
| return; |
| - const extensions::Extension* extension = |
| - extensions::ExtensionSystem::Get(Profile::FromWebUI(web_ui()))-> |
| - extension_service()->extensions()->GetByID(extension_id); |
| - if (!extension || |
| - extensions::ManifestURL::GetOptionsPage(extension).is_empty()) { |
| + |
| + base::string16 options_page_str16; |
|
not at google - send to devlin
2014/01/16 01:04:26
I'd feel more comfortable if we didn't trust what
Shu Chen
2014/01/16 05:52:15
Done.
|
| + if (!args->GetString(1, &options_page_str16)) |
| return; |
| - } |
| - extensions::ExtensionTabUtil::OpenOptionsPage( |
| - extension, |
| - chrome::FindBrowserWithWebContents(web_ui()->GetWebContents())); |
| + |
| + Browser* browser = chrome::FindBrowserWithWebContents( |
| + web_ui()->GetWebContents()); |
| + content::OpenURLParams params(GURL(options_page_str16), |
| + content::Referrer(), |
| + SINGLETON_TAB, |
| + content::PAGE_TRANSITION_LINK, |
| + false); |
| + browser->OpenURL(params); |
| + browser->window()->Show(); |
| + content::WebContents* web_contents = |
| + browser->tab_strip_model()->GetActiveWebContents(); |
| + web_contents->GetDelegate()->ActivateContents(web_contents); |
| } |
| void CrosLanguageOptionsHandler::OnInitialized() { |