Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(91)

Unified Diff: chrome/browser/ui/webui/options/chromeos/cros_language_options_handler.cc

Issue 136693012: [IME] Supports options page for each IME instead of single options page for each IME extension. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..c4c2bf10753e39681ab92b105a22f6ff969a2a81 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,26 @@ 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()) {
+
+ const input_method::InputMethodDescriptor* ime =
+ input_method::InputMethodManager::Get()->GetInputMethodFromId(
+ input_method_id);
+ if (!ime) {
return;
}
- extensions::ExtensionTabUtil::OpenOptionsPage(
- extension,
- chrome::FindBrowserWithWebContents(web_ui()->GetWebContents()));
+
+ Browser* browser = chrome::FindBrowserWithWebContents(
+ web_ui()->GetWebContents());
+ content::OpenURLParams params(ime->options_page_url(),
+ content::Referrer(),
+ SINGLETON_TAB,
+ content::PAGE_TRANSITION_LINK,
+ false);
+ browser->OpenURL(params);
+ browser->window()->Show();
+ content::WebContents* web_contents =
+ browser->tab_strip_model()->GetActiveWebContents();
not at google - send to devlin 2014/01/16 17:51:14 indent += 2
Shu Chen 2014/01/17 02:52:36 Done.
+ web_contents->GetDelegate()->ActivateContents(web_contents);
}
void CrosLanguageOptionsHandler::OnInitialized() {

Powered by Google App Engine
This is Rietveld 408576698