| Index: chrome/browser/extensions/api/image_writer_private/removable_storage_provider_win.cc
|
| diff --git a/chrome/browser/extensions/api/image_writer_private/removable_storage_provider_win.cc b/chrome/browser/extensions/api/image_writer_private/removable_storage_provider_win.cc
|
| index ffac02d3b772fa6eaa24f9b2ad207b51a3498c47..097e434ee106f92a68e0dc6e55bc721d4e052a62 100644
|
| --- a/chrome/browser/extensions/api/image_writer_private/removable_storage_provider_win.cc
|
| +++ b/chrome/browser/extensions/api/image_writer_private/removable_storage_provider_win.cc
|
| @@ -151,8 +151,10 @@ bool AddDeviceInfo(HANDLE interface_enumerator,
|
|
|
| } // namespace
|
|
|
| -bool RemovableStorageProvider::PopulateDeviceList(
|
| - scoped_refptr<StorageDeviceList> device_list) {
|
| +void RemovableStorageProvider::GetAllDevicesImpl(
|
| + DeviceListReadyCallback& callback) {
|
| + scoped_refptr<StorageDeviceList> device_list(new StorageDeviceList);
|
| +
|
| HDEVINFO interface_enumerator = SetupDiGetClassDevs(
|
| &DiskClassGuid,
|
| NULL, // Enumerator.
|
| @@ -162,7 +164,8 @@ bool RemovableStorageProvider::PopulateDeviceList(
|
|
|
| if (interface_enumerator == INVALID_HANDLE_VALUE) {
|
| DPLOG(ERROR) << "SetupDiGetClassDevs failed.";
|
| - return false;
|
| + callback.Run(device_list, false);
|
| + return;
|
| }
|
|
|
| DWORD index = 0;
|
| @@ -184,11 +187,13 @@ bool RemovableStorageProvider::PopulateDeviceList(
|
| if (error_code != ERROR_NO_MORE_ITEMS) {
|
| PLOG(ERROR) << "SetupDiEnumDeviceInterfaces failed";
|
| SetupDiDestroyDeviceInfoList(interface_enumerator);
|
| - return false;
|
| + callback.Run(device_list, false);
|
| + return;
|
| }
|
|
|
| SetupDiDestroyDeviceInfoList(interface_enumerator);
|
| - return true;
|
| +
|
| + callback.Run(device_list, true);
|
| }
|
|
|
| } // namespace extensions
|
|
|