| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/chromeos/extensions/file_manager/job_event_router.h" | 5 #include "chrome/browser/chromeos/extensions/file_manager/job_event_router.h" |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 | 8 |
| 9 #include "base/thread_task_runner_handle.h" | 9 #include "base/thread_task_runner_handle.h" |
| 10 #include "chrome/browser/chromeos/file_manager/app_id.h" | 10 #include "chrome/browser/chromeos/file_manager/app_id.h" |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 | 74 |
| 75 // Forget about the job. | 75 // Forget about the job. |
| 76 drive_jobs_.erase(job_info.job_id); | 76 drive_jobs_.erase(job_info.job_id); |
| 77 if (!drive_jobs_.size()) { | 77 if (!drive_jobs_.size()) { |
| 78 num_completed_bytes_ = 0L; | 78 num_completed_bytes_ = 0L; |
| 79 num_total_bytes_ = 0L; | 79 num_total_bytes_ = 0L; |
| 80 } | 80 } |
| 81 } | 81 } |
| 82 | 82 |
| 83 void JobEventRouter::UpdateBytes(const drive::JobInfo& job_info) { | 83 void JobEventRouter::UpdateBytes(const drive::JobInfo& job_info) { |
| 84 int64 last_completed_bytes = 0; | 84 int64_t last_completed_bytes = 0; |
| 85 int64 last_total_bytes = 0; | 85 int64_t last_total_bytes = 0; |
| 86 if (drive_jobs_.count(job_info.job_id)) { | 86 if (drive_jobs_.count(job_info.job_id)) { |
| 87 last_completed_bytes = drive_jobs_[job_info.job_id]->num_completed_bytes; | 87 last_completed_bytes = drive_jobs_[job_info.job_id]->num_completed_bytes; |
| 88 last_total_bytes = drive_jobs_[job_info.job_id]->num_total_bytes; | 88 last_total_bytes = drive_jobs_[job_info.job_id]->num_total_bytes; |
| 89 } | 89 } |
| 90 num_completed_bytes_ += job_info.num_completed_bytes - last_completed_bytes; | 90 num_completed_bytes_ += job_info.num_completed_bytes - last_completed_bytes; |
| 91 num_total_bytes_ += job_info.num_total_bytes - last_total_bytes; | 91 num_total_bytes_ += job_info.num_total_bytes - last_total_bytes; |
| 92 } | 92 } |
| 93 | 93 |
| 94 void JobEventRouter::ScheduleDriveFileTransferEvent( | 94 void JobEventRouter::ScheduleDriveFileTransferEvent( |
| 95 const drive::JobInfo& job_info, | 95 const drive::JobInfo& job_info, |
| (...skipping 27 matching lines...) Expand all Loading... |
| 123 num_completed_bytes_, num_total_bytes_); | 123 num_completed_bytes_, num_total_bytes_); |
| 124 } | 124 } |
| 125 | 125 |
| 126 pending_job_info_.reset(); | 126 pending_job_info_.reset(); |
| 127 } | 127 } |
| 128 | 128 |
| 129 void JobEventRouter::DispatchFileTransfersUpdateEventToExtension( | 129 void JobEventRouter::DispatchFileTransfersUpdateEventToExtension( |
| 130 const std::string& extension_id, | 130 const std::string& extension_id, |
| 131 const drive::JobInfo& job_info, | 131 const drive::JobInfo& job_info, |
| 132 const file_manager_private::TransferState& state, | 132 const file_manager_private::TransferState& state, |
| 133 const int64 num_total_jobs, | 133 const int64_t num_total_jobs, |
| 134 const int64 num_completed_bytes, | 134 const int64_t num_completed_bytes, |
| 135 const int64 num_total_bytes) { | 135 const int64_t num_total_bytes) { |
| 136 file_manager_private::FileTransferStatus status; | 136 file_manager_private::FileTransferStatus status; |
| 137 | 137 |
| 138 const GURL url = | 138 const GURL url = |
| 139 ConvertDrivePathToFileSystemUrl(job_info.file_path, extension_id); | 139 ConvertDrivePathToFileSystemUrl(job_info.file_path, extension_id); |
| 140 status.file_url = url.spec(); | 140 status.file_url = url.spec(); |
| 141 status.transfer_state = state; | 141 status.transfer_state = state; |
| 142 status.transfer_type = IsUploadJob(job_info.job_type) | 142 status.transfer_type = IsUploadJob(job_info.job_type) |
| 143 ? file_manager_private::TRANSFER_TYPE_UPLOAD | 143 ? file_manager_private::TRANSFER_TYPE_UPLOAD |
| 144 : file_manager_private::TRANSFER_TYPE_DOWNLOAD; | 144 : file_manager_private::TRANSFER_TYPE_DOWNLOAD; |
| 145 // JavaScript does not have 64-bit integers. Instead we use double, which | 145 // JavaScript does not have 64-bit integers. Instead we use double, which |
| 146 // is in IEEE 754 formant and accurate up to 52-bits in JS, and in practice | 146 // is in IEEE 754 formant and accurate up to 52-bits in JS, and in practice |
| 147 // in C++. Larger values are rounded. | 147 // in C++. Larger values are rounded. |
| 148 status.num_total_jobs = num_total_jobs; | 148 status.num_total_jobs = num_total_jobs; |
| 149 status.processed = num_completed_bytes; | 149 status.processed = num_completed_bytes; |
| 150 status.total = num_total_bytes; | 150 status.total = num_total_bytes; |
| 151 | 151 |
| 152 DispatchEventToExtension( | 152 DispatchEventToExtension( |
| 153 extension_id, | 153 extension_id, |
| 154 extensions::events::FILE_MANAGER_PRIVATE_ON_FILE_TRANSFERS_UPDATED, | 154 extensions::events::FILE_MANAGER_PRIVATE_ON_FILE_TRANSFERS_UPDATED, |
| 155 file_manager_private::OnFileTransfersUpdated::kEventName, | 155 file_manager_private::OnFileTransfersUpdated::kEventName, |
| 156 file_manager_private::OnFileTransfersUpdated::Create(status)); | 156 file_manager_private::OnFileTransfersUpdated::Create(status)); |
| 157 } | 157 } |
| 158 | 158 |
| 159 } // namespace file_manager | 159 } // namespace file_manager |
| OLD | NEW |