| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/webui/extensions/extension_settings_handler.h" | 5 #include "chrome/browser/ui/webui/extensions/extension_settings_handler.h" |
| 6 | 6 |
| 7 #include "apps/app_load_service.h" | 7 #include "apps/app_load_service.h" |
| 8 #include "apps/saved_devices_service.h" |
| 8 #include "apps/saved_files_service.h" | 9 #include "apps/saved_files_service.h" |
| 9 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
| 10 #include "base/base64.h" | 11 #include "base/base64.h" |
| 11 #include "base/bind.h" | 12 #include "base/bind.h" |
| 12 #include "base/bind_helpers.h" | 13 #include "base/bind_helpers.h" |
| 13 #include "base/command_line.h" | 14 #include "base/command_line.h" |
| 14 #include "base/location.h" | 15 #include "base/location.h" |
| 15 #include "base/message_loop/message_loop.h" | 16 #include "base/message_loop/message_loop.h" |
| 16 #include "base/metrics/histogram.h" | 17 #include "base/metrics/histogram.h" |
| 17 #include "base/prefs/pref_service.h" | 18 #include "base/prefs/pref_service.h" |
| (...skipping 772 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 790 } | 791 } |
| 791 | 792 |
| 792 void ExtensionSettingsHandler::ExtensionUninstallCanceled() { | 793 void ExtensionSettingsHandler::ExtensionUninstallCanceled() { |
| 793 extension_id_prompting_ = ""; | 794 extension_id_prompting_ = ""; |
| 794 } | 795 } |
| 795 | 796 |
| 796 void ExtensionSettingsHandler::ExtensionWarningsChanged() { | 797 void ExtensionSettingsHandler::ExtensionWarningsChanged() { |
| 797 MaybeUpdateAfterNotification(); | 798 MaybeUpdateAfterNotification(); |
| 798 } | 799 } |
| 799 | 800 |
| 800 // This is called when the user clicks "Revoke File Access." | 801 // This is called when the user clicks "Revoke File/Device Access." |
| 801 void ExtensionSettingsHandler::InstallUIProceed() { | 802 void ExtensionSettingsHandler::InstallUIProceed() { |
| 802 Profile* profile = Profile::FromWebUI(web_ui()); | 803 Profile* profile = Profile::FromWebUI(web_ui()); |
| 804 apps::SavedDevicesService::Get(profile)->Clear(extension_id_prompting_); |
| 803 apps::SavedFilesService::Get(profile)->ClearQueue( | 805 apps::SavedFilesService::Get(profile)->ClearQueue( |
| 804 extension_service_->GetExtensionById(extension_id_prompting_, true)); | 806 extension_service_->GetExtensionById(extension_id_prompting_, true)); |
| 805 apps::AppLoadService::Get(profile) | 807 apps::AppLoadService::Get(profile) |
| 806 ->RestartApplicationIfRunning(extension_id_prompting_); | 808 ->RestartApplicationIfRunning(extension_id_prompting_); |
| 807 extension_id_prompting_.clear(); | 809 extension_id_prompting_.clear(); |
| 808 } | 810 } |
| 809 | 811 |
| 810 void ExtensionSettingsHandler::InstallUIAbort(bool user_initiated) { | 812 void ExtensionSettingsHandler::InstallUIAbort(bool user_initiated) { |
| 811 extension_id_prompting_.clear(); | 813 extension_id_prompting_.clear(); |
| 812 } | 814 } |
| (...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1156 std::vector<base::FilePath> retained_file_paths; | 1158 std::vector<base::FilePath> retained_file_paths; |
| 1157 if (extension->permissions_data()->HasAPIPermission( | 1159 if (extension->permissions_data()->HasAPIPermission( |
| 1158 APIPermission::kFileSystem)) { | 1160 APIPermission::kFileSystem)) { |
| 1159 std::vector<apps::SavedFileEntry> retained_file_entries = | 1161 std::vector<apps::SavedFileEntry> retained_file_entries = |
| 1160 apps::SavedFilesService::Get(Profile::FromWebUI( | 1162 apps::SavedFilesService::Get(Profile::FromWebUI( |
| 1161 web_ui()))->GetAllFileEntries(extension_id_prompting_); | 1163 web_ui()))->GetAllFileEntries(extension_id_prompting_); |
| 1162 for (size_t i = 0; i < retained_file_entries.size(); ++i) { | 1164 for (size_t i = 0; i < retained_file_entries.size(); ++i) { |
| 1163 retained_file_paths.push_back(retained_file_entries[i].path); | 1165 retained_file_paths.push_back(retained_file_entries[i].path); |
| 1164 } | 1166 } |
| 1165 } | 1167 } |
| 1168 std::vector<base::string16> retained_device_messages; |
| 1169 if (extension->permissions_data()->HasAPIPermission(APIPermission::kUsb)) { |
| 1170 retained_device_messages = |
| 1171 apps::SavedDevicesService::Get(Profile::FromWebUI(web_ui())) |
| 1172 ->GetPermissionMessageStrings(extension_id_prompting_); |
| 1173 } |
| 1174 |
| 1166 // The BrokerDelegate manages its own lifetime. | 1175 // The BrokerDelegate manages its own lifetime. |
| 1167 prompt_->ReviewPermissions( | 1176 prompt_->ReviewPermissions(new BrokerDelegate(AsWeakPtr()), |
| 1168 new BrokerDelegate(AsWeakPtr()), extension, retained_file_paths); | 1177 extension, |
| 1178 retained_file_paths, |
| 1179 retained_device_messages); |
| 1169 } | 1180 } |
| 1170 | 1181 |
| 1171 void ExtensionSettingsHandler::HandleShowButtonMessage( | 1182 void ExtensionSettingsHandler::HandleShowButtonMessage( |
| 1172 const base::ListValue* args) { | 1183 const base::ListValue* args) { |
| 1173 const Extension* extension = GetActiveExtension(args); | 1184 const Extension* extension = GetActiveExtension(args); |
| 1174 if (!extension) | 1185 if (!extension) |
| 1175 return; | 1186 return; |
| 1176 ExtensionActionAPI::SetBrowserActionVisibility( | 1187 ExtensionActionAPI::SetBrowserActionVisibility( |
| 1177 ExtensionPrefs::Get(extension_service_->profile()), | 1188 ExtensionPrefs::Get(extension_service_->profile()), |
| 1178 extension->id(), | 1189 extension->id(), |
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1417 extension_service_->EnableExtension(extension_id); | 1428 extension_service_->EnableExtension(extension_id); |
| 1418 } else { | 1429 } else { |
| 1419 ExtensionErrorReporter::GetInstance()->ReportError( | 1430 ExtensionErrorReporter::GetInstance()->ReportError( |
| 1420 base::UTF8ToUTF16(JoinString(requirement_errors, ' ')), | 1431 base::UTF8ToUTF16(JoinString(requirement_errors, ' ')), |
| 1421 true); // Be noisy. | 1432 true); // Be noisy. |
| 1422 } | 1433 } |
| 1423 requirements_checker_.reset(); | 1434 requirements_checker_.reset(); |
| 1424 } | 1435 } |
| 1425 | 1436 |
| 1426 } // namespace extensions | 1437 } // namespace extensions |
| OLD | NEW |