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 20e6b3fc28c78ee2ae84cc5f6392652a0eedeb38..d54682368ae574260697a41bacce0b9a998f2cb1 100644 |
--- a/chrome/browser/ui/webui/extensions/extension_settings_handler.cc |
+++ b/chrome/browser/ui/webui/extensions/extension_settings_handler.cc |
@@ -5,6 +5,7 @@ |
#include "chrome/browser/ui/webui/extensions/extension_settings_handler.h" |
#include "apps/app_load_service.h" |
+#include "apps/saved_devices_service.h" |
#include "apps/saved_files_service.h" |
#include "base/auto_reset.h" |
#include "base/base64.h" |
@@ -796,9 +797,10 @@ void ExtensionSettingsHandler::ExtensionWarningsChanged() { |
MaybeUpdateAfterNotification(); |
} |
-// This is called when the user clicks "Revoke File Access." |
+// This is called when the user clicks "Revoke File/Device Access." |
void ExtensionSettingsHandler::InstallUIProceed() { |
Profile* profile = Profile::FromWebUI(web_ui()); |
+ apps::SavedDevicesService::Get(profile)->Clear(extension_id_prompting_); |
apps::SavedFilesService::Get(profile)->ClearQueue( |
extension_service_->GetExtensionById(extension_id_prompting_, true)); |
apps::AppLoadService::Get(profile) |
@@ -1162,9 +1164,18 @@ void ExtensionSettingsHandler::HandlePermissionsMessage( |
retained_file_paths.push_back(retained_file_entries[i].path); |
} |
} |
+ std::vector<base::string16> retained_device_messages; |
+ if (extension->permissions_data()->HasAPIPermission(APIPermission::kUsb)) { |
+ retained_device_messages = |
+ apps::SavedDevicesService::Get(Profile::FromWebUI(web_ui())) |
+ ->GetPermissionMessageStrings(extension_id_prompting_); |
+ } |
+ |
// The BrokerDelegate manages its own lifetime. |
- prompt_->ReviewPermissions( |
- new BrokerDelegate(AsWeakPtr()), extension, retained_file_paths); |
+ prompt_->ReviewPermissions(new BrokerDelegate(AsWeakPtr()), |
+ extension, |
+ retained_file_paths, |
+ retained_device_messages); |
} |
void ExtensionSettingsHandler::HandleShowButtonMessage( |