Index: chrome/browser/extensions/api/i18n/i18n_api.cc |
diff --git a/chrome/browser/extensions/api/i18n/i18n_api.cc b/chrome/browser/extensions/api/i18n/i18n_api.cc |
index f95797475b033cf678ddc566b797322afa42e58e..ce22beb3588197e73cb567a9b244ddcd80cf50bc 100644 |
--- a/chrome/browser/extensions/api/i18n/i18n_api.cc |
+++ b/chrome/browser/extensions/api/i18n/i18n_api.cc |
@@ -27,9 +27,10 @@ static const char kEmptyAcceptLanguagesError[] = "accept-languages is empty."; |
} |
-bool I18nGetAcceptLanguagesFunction::RunSync() { |
- std::string accept_languages = |
- GetProfile()->GetPrefs()->GetString(prefs::kAcceptLanguages); |
+ExtensionFunction::ResponseAction I18nGetAcceptLanguagesFunction::Run() { |
+ std::string accept_languages = Profile::FromBrowserContext(browser_context()) |
+ ->GetPrefs() |
+ ->GetString(prefs::kAcceptLanguages); |
// Currently, there are 2 ways to set browser's accept-languages: through UI |
// or directly modify the preference file. The accept-languages set through |
// UI is guranteed to be valid, and the accept-languages string returned from |
@@ -40,23 +41,19 @@ bool I18nGetAcceptLanguagesFunction::RunSync() { |
// of the language code) on accept-languages set through editing preference |
// file directly. So, here, we're adding extra checks to be resistant to |
// crashes caused by data corruption. |
- if (accept_languages.empty()) { |
- error_ = kEmptyAcceptLanguagesError; |
- return false; |
- } |
+ if (accept_languages.empty()) |
+ return RespondNow(Error(kEmptyAcceptLanguagesError)); |
std::vector<std::string> languages = base::SplitString( |
accept_languages, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); |
languages.erase(std::remove(languages.begin(), languages.end(), ""), |
languages.end()); |
- if (languages.empty()) { |
- error_ = kEmptyAcceptLanguagesError; |
- return false; |
- } |
+ if (languages.empty()) |
+ return RespondNow(Error(kEmptyAcceptLanguagesError)); |
- results_ = GetAcceptLanguages::Results::Create(languages); |
- return true; |
+ return RespondNow( |
+ ArgumentList(GetAcceptLanguages::Results::Create(languages))); |
} |
} // namespace extensions |