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() { |