#include "base/logging.h"
#include "chrome/browser/extensions/component_loader.h"
#include "chrome/browser/extensions/extension_service.h"
-#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
-#include "chrome/common/extensions/extension.h"
#include "chrome/common/extensions/extension_file_util.h"
#include "chrome/common/extensions/extension_l10n_util.h"
#include "content/public/browser/browser_thread.h"
+#include "extensions/browser/extension_system.h"
+#include "extensions/common/extension.h"
#include "extensions/common/manifest_constants.h"
#include "ui/base/l10n/l10n_util.h"
};
extensions::ComponentLoader* GetComponentLoader() {
- Profile* profile = ProfileManager::GetDefaultProfileOrOffTheRecord();
+ // TODO(skuhne, nkostylev): At this time the only thing which makes sense here
+ // is to use the active profile. Nkostylev is working on getting IME settings
+ // to work for multi user by collecting all settings from all users. Once that
+ // is done we might have to re-visit this decision.
+ Profile* profile = ProfileManager::GetActiveUserProfile();
extensions::ExtensionSystem* extension_system =
extensions::ExtensionSystem::Get(profile);
ExtensionService* extension_service = extension_system->extension_service();
return true;
}
-scoped_ptr<DictionaryValue> ComponentExtensionIMEManagerImpl::GetManifest(
+scoped_ptr<base::DictionaryValue> ComponentExtensionIMEManagerImpl::GetManifest(
const base::FilePath& file_path) {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE));
std::string error;
- scoped_ptr<DictionaryValue> manifest(
+ scoped_ptr<base::DictionaryValue> manifest(
extension_file_util::LoadManifest(file_path, &error));
if (!manifest.get())
LOG(ERROR) << "Failed at getting manifest";
// static
bool ComponentExtensionIMEManagerImpl::ReadEngineComponent(
- const DictionaryValue& dict,
+ const base::DictionaryValue& dict,
ComponentExtensionEngine* out) {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE));
DCHECK(out);
DCHECK(!languages.empty());
out->language_codes.assign(languages.begin(), languages.end());
- const ListValue* layouts = NULL;
+ const base::ListValue* layouts = NULL;
if (!dict.GetList(extensions::manifest_keys::kLayouts, &layouts))
return false;
// static
bool ComponentExtensionIMEManagerImpl::ReadExtensionInfo(
- const DictionaryValue& manifest,
+ const base::DictionaryValue& manifest,
const std::string& extension_id,
ComponentExtensionIME* out) {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE));
&out->description))
return false;
std::string url_string;
- if (!manifest.GetString(extensions::manifest_keys::kOptionsPage, &url_string))
- return true; // It's okay to return true on no option page case.
-
- GURL url = extensions::Extension::GetResourceURL(
- extensions::Extension::GetBaseURLFromExtensionId(extension_id),
- url_string);
- if (!url.is_valid())
- return false;
- out->options_page_url = url;
+ if (manifest.GetString(extensions::manifest_keys::kOptionsPage,
+ &url_string)) {
+ GURL url = extensions::Extension::GetResourceURL(
+ extensions::Extension::GetBaseURLFromExtensionId(extension_id),
+ url_string);
+ if (!url.is_valid())
+ return false;
+ out->options_page_url = url;
+ }
+ if (manifest.GetString(extensions::manifest_keys::kInputView,
+ &url_string)) {
+ GURL url = extensions::Extension::GetResourceURL(
+ extensions::Extension::GetBaseURLFromExtensionId(extension_id),
+ url_string);
+ if (!url.is_valid())
+ return false;
+ out->input_view_url = url;
+ }
+ // It's okay to return true on no option page and/or input view page case.
return true;
}
if (!base::ReadFileToString(manifest_path, &component_ime.manifest))
continue;
- scoped_ptr<DictionaryValue> manifest = GetManifest(component_ime.path);
+ scoped_ptr<base::DictionaryValue> manifest =
+ GetManifest(component_ime.path);
if (!manifest.get())
continue;
continue;
component_ime.id = whitelisted_component_extension[i].id;
- const ListValue* component_list;
+ const base::ListValue* component_list;
if (!manifest->GetList(extensions::manifest_keys::kInputComponents,
&component_list))
continue;
for (size_t i = 0; i < component_list->GetSize(); ++i) {
- const DictionaryValue* dictionary;
+ const base::DictionaryValue* dictionary;
if (!component_list->GetDictionary(i, &dictionary))
continue;