| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/extensions/api/system_storage/system_storage_api.h" | 5 #include "extensions/browser/api/system_storage/system_storage_api.h" |
| 6 | 6 |
| 7 using storage_monitor::StorageMonitor; | 7 using storage_monitor::StorageMonitor; |
| 8 | 8 |
| 9 namespace extensions { | 9 namespace extensions { |
| 10 | 10 |
| 11 using api::system_storage::StorageUnitInfo; | 11 using core_api::system_storage::StorageUnitInfo; |
| 12 namespace EjectDevice = api::system_storage::EjectDevice; | 12 namespace EjectDevice = core_api::system_storage::EjectDevice; |
| 13 namespace GetAvailableCapacity = api::system_storage::GetAvailableCapacity; | 13 namespace GetAvailableCapacity = core_api::system_storage::GetAvailableCapacity; |
| 14 | 14 |
| 15 SystemStorageGetInfoFunction::SystemStorageGetInfoFunction() { | 15 SystemStorageGetInfoFunction::SystemStorageGetInfoFunction() { |
| 16 } | 16 } |
| 17 | 17 |
| 18 SystemStorageGetInfoFunction::~SystemStorageGetInfoFunction() { | 18 SystemStorageGetInfoFunction::~SystemStorageGetInfoFunction() { |
| 19 } | 19 } |
| 20 | 20 |
| 21 bool SystemStorageGetInfoFunction::RunAsync() { | 21 bool SystemStorageGetInfoFunction::RunAsync() { |
| 22 StorageInfoProvider::Get()->StartQueryInfo( | 22 StorageInfoProvider::Get()->StartQueryInfo(base::Bind( |
| 23 base::Bind(&SystemStorageGetInfoFunction::OnGetStorageInfoCompleted, | 23 &SystemStorageGetInfoFunction::OnGetStorageInfoCompleted, this)); |
| 24 this)); | |
| 25 return true; | 24 return true; |
| 26 } | 25 } |
| 27 | 26 |
| 28 void SystemStorageGetInfoFunction::OnGetStorageInfoCompleted(bool success) { | 27 void SystemStorageGetInfoFunction::OnGetStorageInfoCompleted(bool success) { |
| 29 if (success) { | 28 if (success) { |
| 30 results_ = api::system_storage::GetInfo::Results::Create( | 29 results_ = core_api::system_storage::GetInfo::Results::Create( |
| 31 StorageInfoProvider::Get()->storage_unit_info_list()); | 30 StorageInfoProvider::Get()->storage_unit_info_list()); |
| 32 } else { | 31 } else { |
| 33 SetError("Error occurred when querying storage information."); | 32 SetError("Error occurred when querying storage information."); |
| 34 } | 33 } |
| 35 | 34 |
| 36 SendResponse(success); | 35 SendResponse(success); |
| 37 } | 36 } |
| 38 | 37 |
| 39 SystemStorageEjectDeviceFunction::~SystemStorageEjectDeviceFunction() { | 38 SystemStorageEjectDeviceFunction::~SystemStorageEjectDeviceFunction() { |
| 40 } | 39 } |
| 41 | 40 |
| 42 bool SystemStorageEjectDeviceFunction::RunAsync() { | 41 bool SystemStorageEjectDeviceFunction::RunAsync() { |
| 43 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 42 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
| 44 | 43 |
| 45 scoped_ptr<EjectDevice::Params> params(EjectDevice::Params::Create(*args_)); | 44 scoped_ptr<EjectDevice::Params> params(EjectDevice::Params::Create(*args_)); |
| 46 EXTENSION_FUNCTION_VALIDATE(params.get()); | 45 EXTENSION_FUNCTION_VALIDATE(params.get()); |
| 47 | 46 |
| 48 StorageMonitor::GetInstance()->EnsureInitialized(base::Bind( | 47 StorageMonitor::GetInstance()->EnsureInitialized( |
| 49 &SystemStorageEjectDeviceFunction::OnStorageMonitorInit, | 48 base::Bind(&SystemStorageEjectDeviceFunction::OnStorageMonitorInit, |
| 50 this, | 49 this, |
| 51 params->id)); | 50 params->id)); |
| 52 return true; | 51 return true; |
| 53 } | 52 } |
| 54 | 53 |
| 55 void SystemStorageEjectDeviceFunction::OnStorageMonitorInit( | 54 void SystemStorageEjectDeviceFunction::OnStorageMonitorInit( |
| 56 const std::string& transient_device_id) { | 55 const std::string& transient_device_id) { |
| 57 DCHECK(StorageMonitor::GetInstance()->IsInitialized()); | 56 DCHECK(StorageMonitor::GetInstance()->IsInitialized()); |
| 58 StorageMonitor* monitor = StorageMonitor::GetInstance(); | 57 StorageMonitor* monitor = StorageMonitor::GetInstance(); |
| 59 std::string device_id_str = | 58 std::string device_id_str = |
| 60 StorageMonitor::GetInstance()->GetDeviceIdForTransientId( | 59 StorageMonitor::GetInstance()->GetDeviceIdForTransientId( |
| 61 transient_device_id); | 60 transient_device_id); |
| 62 | 61 |
| 63 if (device_id_str == "") { | 62 if (device_id_str == "") { |
| 64 HandleResponse(StorageMonitor::EJECT_NO_SUCH_DEVICE); | 63 HandleResponse(StorageMonitor::EJECT_NO_SUCH_DEVICE); |
| 65 return; | 64 return; |
| 66 } | 65 } |
| 67 | 66 |
| 68 monitor->EjectDevice( | 67 monitor->EjectDevice( |
| 69 device_id_str, | 68 device_id_str, |
| 70 base::Bind(&SystemStorageEjectDeviceFunction::HandleResponse, | 69 base::Bind(&SystemStorageEjectDeviceFunction::HandleResponse, this)); |
| 71 this)); | |
| 72 } | 70 } |
| 73 | 71 |
| 74 void SystemStorageEjectDeviceFunction::HandleResponse( | 72 void SystemStorageEjectDeviceFunction::HandleResponse( |
| 75 StorageMonitor::EjectStatus status) { | 73 StorageMonitor::EjectStatus status) { |
| 76 api::system_storage:: EjectDeviceResultCode result = | 74 core_api::system_storage::EjectDeviceResultCode result = |
| 77 api::system_storage::EJECT_DEVICE_RESULT_CODE_FAILURE; | 75 core_api::system_storage::EJECT_DEVICE_RESULT_CODE_FAILURE; |
| 78 switch (status) { | 76 switch (status) { |
| 79 case StorageMonitor::EJECT_OK: | 77 case StorageMonitor::EJECT_OK: |
| 80 result = api::system_storage::EJECT_DEVICE_RESULT_CODE_SUCCESS; | 78 result = core_api::system_storage::EJECT_DEVICE_RESULT_CODE_SUCCESS; |
| 81 break; | 79 break; |
| 82 case StorageMonitor::EJECT_IN_USE: | 80 case StorageMonitor::EJECT_IN_USE: |
| 83 result = api::system_storage::EJECT_DEVICE_RESULT_CODE_IN_USE; | 81 result = core_api::system_storage::EJECT_DEVICE_RESULT_CODE_IN_USE; |
| 84 break; | 82 break; |
| 85 case StorageMonitor::EJECT_NO_SUCH_DEVICE: | 83 case StorageMonitor::EJECT_NO_SUCH_DEVICE: |
| 86 result = api::system_storage:: | 84 result = |
| 87 EJECT_DEVICE_RESULT_CODE_NO_SUCH_DEVICE; | 85 core_api::system_storage::EJECT_DEVICE_RESULT_CODE_NO_SUCH_DEVICE; |
| 88 break; | 86 break; |
| 89 case StorageMonitor::EJECT_FAILURE: | 87 case StorageMonitor::EJECT_FAILURE: |
| 90 result = api::system_storage::EJECT_DEVICE_RESULT_CODE_FAILURE; | 88 result = core_api::system_storage::EJECT_DEVICE_RESULT_CODE_FAILURE; |
| 91 } | 89 } |
| 92 | 90 |
| 93 SetResult(new base::StringValue( | 91 SetResult(new base::StringValue(core_api::system_storage::ToString(result))); |
| 94 api::system_storage::ToString(result))); | |
| 95 SendResponse(true); | 92 SendResponse(true); |
| 96 } | 93 } |
| 97 | 94 |
| 98 SystemStorageGetAvailableCapacityFunction:: | 95 SystemStorageGetAvailableCapacityFunction:: |
| 99 SystemStorageGetAvailableCapacityFunction() { | 96 SystemStorageGetAvailableCapacityFunction() { |
| 100 } | 97 } |
| 101 | 98 |
| 102 SystemStorageGetAvailableCapacityFunction:: | 99 SystemStorageGetAvailableCapacityFunction:: |
| 103 ~SystemStorageGetAvailableCapacityFunction() { | 100 ~SystemStorageGetAvailableCapacityFunction() { |
| 104 } | 101 } |
| (...skipping 12 matching lines...) Expand all Loading... |
| 117 return true; | 114 return true; |
| 118 } | 115 } |
| 119 | 116 |
| 120 void SystemStorageGetAvailableCapacityFunction::OnStorageMonitorInit( | 117 void SystemStorageGetAvailableCapacityFunction::OnStorageMonitorInit( |
| 121 const std::string& transient_id) { | 118 const std::string& transient_id) { |
| 122 content::BrowserThread::PostTaskAndReplyWithResult( | 119 content::BrowserThread::PostTaskAndReplyWithResult( |
| 123 content::BrowserThread::FILE, | 120 content::BrowserThread::FILE, |
| 124 FROM_HERE, | 121 FROM_HERE, |
| 125 base::Bind( | 122 base::Bind( |
| 126 &StorageInfoProvider::GetStorageFreeSpaceFromTransientIdOnFileThread, | 123 &StorageInfoProvider::GetStorageFreeSpaceFromTransientIdOnFileThread, |
| 127 StorageInfoProvider::Get(), transient_id), | 124 StorageInfoProvider::Get(), |
| 128 base::Bind( | 125 transient_id), |
| 129 &SystemStorageGetAvailableCapacityFunction::OnQueryCompleted, | 126 base::Bind(&SystemStorageGetAvailableCapacityFunction::OnQueryCompleted, |
| 130 this, transient_id)); | 127 this, |
| 128 transient_id)); |
| 131 } | 129 } |
| 132 | 130 |
| 133 void SystemStorageGetAvailableCapacityFunction::OnQueryCompleted( | 131 void SystemStorageGetAvailableCapacityFunction::OnQueryCompleted( |
| 134 const std::string& transient_id, double available_capacity) { | 132 const std::string& transient_id, |
| 133 double available_capacity) { |
| 135 bool success = available_capacity >= 0; | 134 bool success = available_capacity >= 0; |
| 136 if (success) { | 135 if (success) { |
| 137 api::system_storage::StorageAvailableCapacityInfo result; | 136 core_api::system_storage::StorageAvailableCapacityInfo result; |
| 138 result.id = transient_id; | 137 result.id = transient_id; |
| 139 result.available_capacity = available_capacity; | 138 result.available_capacity = available_capacity; |
| 140 SetResult(result.ToValue().release()); | 139 SetResult(result.ToValue().release()); |
| 141 } else { | 140 } else { |
| 142 SetError("Error occurred when querying available capacity."); | 141 SetError("Error occurred when querying available capacity."); |
| 143 } | 142 } |
| 144 SendResponse(success); | 143 SendResponse(success); |
| 145 } | 144 } |
| 146 | 145 |
| 147 } // namespace extensions | 146 } // namespace extensions |
| OLD | NEW |