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 305d975b4ed8afe1d8d56bcd09216ce7c85740b0..8ae58dffbdfad2b71bd864dc08c8649d71a74bdc 100644 |
--- a/chrome/browser/ui/webui/extensions/extension_settings_handler.cc |
+++ b/chrome/browser/ui/webui/extensions/extension_settings_handler.cc |
@@ -72,6 +72,7 @@ |
#include "content/public/browser/web_contents.h" |
#include "content/public/browser/web_ui.h" |
#include "content/public/browser/web_ui_data_source.h" |
+#include "extensions/browser/api/device_permissions_manager.h" |
#include "extensions/browser/app_window/app_window.h" |
#include "extensions/browser/app_window/app_window_registry.h" |
#include "extensions/browser/blacklist_state.h" |
@@ -801,9 +802,11 @@ 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()); |
+ extensions::DevicePermissionsManager::Get(profile) |
+ ->Clear(extension_id_prompting_); |
apps::SavedFilesService::Get(profile)->ClearQueue( |
extension_service_->GetExtensionById(extension_id_prompting_, true)); |
apps::AppLoadService::Get(profile) |
@@ -1179,9 +1182,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 = |
+ extensions::DevicePermissionsManager::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( |