Chromium Code Reviews| Index: chrome/browser/ui/webui/extensions/extension_settings_handler.cc |
| diff --git a/chrome/browser/ui/webui/extensions/extension_settings_handler.cc b/chrome/browser/ui/webui/extensions/extension_settings_handler.cc |
| index 21c798dd96b3351624beacf9d912de211114cea3..c03377e8d8e3765f5e52e08ee4c92465af24acfe 100644 |
| --- a/chrome/browser/ui/webui/extensions/extension_settings_handler.cc |
| +++ b/chrome/browser/ui/webui/extensions/extension_settings_handler.cc |
| @@ -345,6 +345,10 @@ void ExtensionSettingsHandler::GetLocalizedValues( |
| l10n_util::GetStringUTF16(IDS_EXTENSIONS_SHOW_DETAILS)); |
| source->AddString("extensionSettingsHideDetails", |
| l10n_util::GetStringUTF16(IDS_EXTENSIONS_HIDE_DETAILS)); |
| + source->AddString("unlockButton", |
| + l10n_util::GetStringUTF16(IDS_EXTENSIONS_UNLOCK_BUTTON)); |
| + source->AddString("lockButton", |
| + l10n_util::GetStringUTF16(IDS_EXTENSIONS_LOCK_BUTTON)); |
| // TODO(estade): comb through the above strings to find ones no longer used in |
| // uber extensions. |
| @@ -370,6 +374,12 @@ void ExtensionSettingsHandler::RegisterMessages() { |
| extension_service_->profile())->management_policy(); |
| } |
| + web_ui()->RegisterMessageCallback("authenticate", |
| + base::Bind(&ExtensionSettingsHandler::DoAuthenticate, |
| + base::Unretained(this))); |
| + web_ui()->RegisterMessageCallback("endAuthentication", |
| + base::Bind(&ExtensionSettingsHandler::EndAuthentication, |
| + base::Unretained(this))); |
|
not at google - send to devlin
2013/02/21 01:29:18
Can we combine these into a single message like se
Adrian Kuegel
2013/02/21 10:10:54
Yes, true. I changed it like that.
|
| web_ui()->RegisterMessageCallback("extensionSettingsRequestExtensionsData", |
| base::Bind(&ExtensionSettingsHandler::HandleRequestExtensionsData, |
| base::Unretained(this))); |
| @@ -537,6 +547,21 @@ void ExtensionSettingsHandler::ReloadUnpackedExtensions() { |
| } |
| } |
| +void ExtensionSettingsHandler::DoAuthenticate(const ListValue* args) { |
| + ManagedUserService* service = ManagedUserServiceFactory::GetForProfile( |
| + Profile::FromWebUI(web_ui())); |
| + // TODO(akuegel): Show the managed user passphrase dialog for authentication. |
| + service->SetElevated(true); |
| + HandleRequestExtensionsData(NULL); |
| +} |
| + |
| +void ExtensionSettingsHandler::EndAuthentication(const ListValue* args) { |
| + ManagedUserService* service = ManagedUserServiceFactory::GetForProfile( |
| + Profile::FromWebUI(web_ui())); |
| + service->SetElevated(false); |
| + HandleRequestExtensionsData(NULL); |
| +} |
| + |
| void ExtensionSettingsHandler::HandleRequestExtensionsData( |
| const ListValue* args) { |
| DictionaryValue results; |
| @@ -582,12 +607,16 @@ void ExtensionSettingsHandler::HandleRequestExtensionsData( |
| } |
| results.Set("extensions", extensions_list); |
| - bool is_managed = |
| - ManagedUserServiceFactory::GetForProfile(profile)->ProfileIsManaged(); |
| + ManagedUserService* service = |
| + ManagedUserServiceFactory::GetForProfile(profile); |
| + |
| + bool is_managed = service->ProfileIsManaged(); |
| + bool is_elevated = service->IsElevated(); |
| bool developer_mode = |
| - !is_managed && |
| + (!is_managed || is_elevated) && |
| profile->GetPrefs()->GetBoolean(prefs::kExtensionsUIDeveloperMode); |
| results.SetBoolean("profileIsManaged", is_managed); |
| + results.SetBoolean("profileIsElevated", service->IsElevated()); |
|
not at google - send to devlin
2013/02/21 01:29:18
is_elevated?
Adrian Kuegel
2013/02/21 10:10:54
The logic in the IsElevated method was not final y
|
| results.SetBoolean("developerMode", developer_mode); |
| // Check to see if we have any wiped out extensions. |