| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/event_router.h" | 5 #include "chrome/browser/chromeos/extensions/file_manager/event_router.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/files/file_util.h" | 8 #include "base/files/file_util.h" |
| 9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 10 #include "base/prefs/pref_change_registrar.h" | 10 #include "base/prefs/pref_change_registrar.h" |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 #include "storage/common/fileapi/file_system_util.h" | 49 #include "storage/common/fileapi/file_system_util.h" |
| 50 | 50 |
| 51 using chromeos::disks::DiskMountManager; | 51 using chromeos::disks::DiskMountManager; |
| 52 using chromeos::NetworkHandler; | 52 using chromeos::NetworkHandler; |
| 53 using content::BrowserThread; | 53 using content::BrowserThread; |
| 54 using drive::DriveIntegrationService; | 54 using drive::DriveIntegrationService; |
| 55 using drive::DriveIntegrationServiceFactory; | 55 using drive::DriveIntegrationServiceFactory; |
| 56 using file_manager::util::EntryDefinition; | 56 using file_manager::util::EntryDefinition; |
| 57 using file_manager::util::FileDefinition; | 57 using file_manager::util::FileDefinition; |
| 58 | 58 |
| 59 namespace file_browser_private = extensions::api::file_browser_private; | 59 namespace file_manager_private = extensions::api::file_manager_private; |
| 60 | 60 |
| 61 namespace file_manager { | 61 namespace file_manager { |
| 62 namespace { | 62 namespace { |
| 63 // Constants for the "transferState" field of onFileTransferUpdated event. | 63 // Constants for the "transferState" field of onFileTransferUpdated event. |
| 64 const char kFileTransferStateAdded[] = "added"; | 64 const char kFileTransferStateAdded[] = "added"; |
| 65 const char kFileTransferStateStarted[] = "started"; | 65 const char kFileTransferStateStarted[] = "started"; |
| 66 const char kFileTransferStateInProgress[] = "in_progress"; | 66 const char kFileTransferStateInProgress[] = "in_progress"; |
| 67 const char kFileTransferStateCompleted[] = "completed"; | 67 const char kFileTransferStateCompleted[] = "completed"; |
| 68 const char kFileTransferStateFailed[] = "failed"; | 68 const char kFileTransferStateFailed[] = "failed"; |
| 69 | 69 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 93 } | 93 } |
| 94 return num_active_file_transfer_job_info; | 94 return num_active_file_transfer_job_info; |
| 95 } | 95 } |
| 96 | 96 |
| 97 // Converts the job info to a IDL generated type. | 97 // Converts the job info to a IDL generated type. |
| 98 void JobInfoToTransferStatus( | 98 void JobInfoToTransferStatus( |
| 99 Profile* profile, | 99 Profile* profile, |
| 100 const std::string& extension_id, | 100 const std::string& extension_id, |
| 101 const std::string& job_status, | 101 const std::string& job_status, |
| 102 const drive::JobInfo& job_info, | 102 const drive::JobInfo& job_info, |
| 103 file_browser_private::FileTransferStatus* status) { | 103 file_manager_private::FileTransferStatus* status) { |
| 104 DCHECK(IsActiveFileTransferJobInfo(job_info)); | 104 DCHECK(IsActiveFileTransferJobInfo(job_info)); |
| 105 | 105 |
| 106 scoped_ptr<base::DictionaryValue> result(new base::DictionaryValue); | 106 scoped_ptr<base::DictionaryValue> result(new base::DictionaryValue); |
| 107 GURL url = util::ConvertDrivePathToFileSystemUrl( | 107 GURL url = util::ConvertDrivePathToFileSystemUrl( |
| 108 profile, job_info.file_path, extension_id); | 108 profile, job_info.file_path, extension_id); |
| 109 status->file_url = url.spec(); | 109 status->file_url = url.spec(); |
| 110 status->transfer_state = file_browser_private::ParseTransferState(job_status); | 110 status->transfer_state = file_manager_private::ParseTransferState(job_status); |
| 111 status->transfer_type = | 111 status->transfer_type = |
| 112 IsUploadJob(job_info.job_type) ? | 112 IsUploadJob(job_info.job_type) ? |
| 113 file_browser_private::TRANSFER_TYPE_UPLOAD : | 113 file_manager_private::TRANSFER_TYPE_UPLOAD : |
| 114 file_browser_private::TRANSFER_TYPE_DOWNLOAD; | 114 file_manager_private::TRANSFER_TYPE_DOWNLOAD; |
| 115 DriveIntegrationService* const integration_service = | 115 DriveIntegrationService* const integration_service = |
| 116 DriveIntegrationServiceFactory::FindForProfile(profile); | 116 DriveIntegrationServiceFactory::FindForProfile(profile); |
| 117 status->num_total_jobs = CountActiveFileTransferJobInfo( | 117 status->num_total_jobs = CountActiveFileTransferJobInfo( |
| 118 integration_service->job_list()->GetJobInfoList()); | 118 integration_service->job_list()->GetJobInfoList()); |
| 119 // JavaScript does not have 64-bit integers. Instead we use double, which | 119 // JavaScript does not have 64-bit integers. Instead we use double, which |
| 120 // is in IEEE 754 formant and accurate up to 52-bits in JS, and in practice | 120 // is in IEEE 754 formant and accurate up to 52-bits in JS, and in practice |
| 121 // in C++. Larger values are rounded. | 121 // in C++. Larger values are rounded. |
| 122 status->processed.reset( | 122 status->processed.reset( |
| 123 new double(static_cast<double>(job_info.num_completed_bytes))); | 123 new double(static_cast<double>(job_info.num_completed_bytes))); |
| 124 status->total.reset( | 124 status->total.reset( |
| (...skipping 23 matching lines...) Expand all Loading... |
| 148 } | 148 } |
| 149 | 149 |
| 150 // Sends an event named |event_name| with arguments |event_args| to extensions. | 150 // Sends an event named |event_name| with arguments |event_args| to extensions. |
| 151 void BroadcastEvent(Profile* profile, | 151 void BroadcastEvent(Profile* profile, |
| 152 const std::string& event_name, | 152 const std::string& event_name, |
| 153 scoped_ptr<base::ListValue> event_args) { | 153 scoped_ptr<base::ListValue> event_args) { |
| 154 extensions::EventRouter::Get(profile)->BroadcastEvent( | 154 extensions::EventRouter::Get(profile)->BroadcastEvent( |
| 155 make_scoped_ptr(new extensions::Event(event_name, event_args.Pass()))); | 155 make_scoped_ptr(new extensions::Event(event_name, event_args.Pass()))); |
| 156 } | 156 } |
| 157 | 157 |
| 158 file_browser_private::MountCompletedStatus | 158 file_manager_private::MountCompletedStatus |
| 159 MountErrorToMountCompletedStatus(chromeos::MountError error) { | 159 MountErrorToMountCompletedStatus(chromeos::MountError error) { |
| 160 switch (error) { | 160 switch (error) { |
| 161 case chromeos::MOUNT_ERROR_NONE: | 161 case chromeos::MOUNT_ERROR_NONE: |
| 162 return file_browser_private::MOUNT_COMPLETED_STATUS_SUCCESS; | 162 return file_manager_private::MOUNT_COMPLETED_STATUS_SUCCESS; |
| 163 case chromeos::MOUNT_ERROR_UNKNOWN: | 163 case chromeos::MOUNT_ERROR_UNKNOWN: |
| 164 return file_browser_private::MOUNT_COMPLETED_STATUS_ERROR_UNKNOWN; | 164 return file_manager_private::MOUNT_COMPLETED_STATUS_ERROR_UNKNOWN; |
| 165 case chromeos::MOUNT_ERROR_INTERNAL: | 165 case chromeos::MOUNT_ERROR_INTERNAL: |
| 166 return file_browser_private::MOUNT_COMPLETED_STATUS_ERROR_INTERNAL; | 166 return file_manager_private::MOUNT_COMPLETED_STATUS_ERROR_INTERNAL; |
| 167 case chromeos::MOUNT_ERROR_INVALID_ARGUMENT: | 167 case chromeos::MOUNT_ERROR_INVALID_ARGUMENT: |
| 168 return file_browser_private:: | 168 return file_manager_private:: |
| 169 MOUNT_COMPLETED_STATUS_ERROR_INVALID_ARGUMENT; | 169 MOUNT_COMPLETED_STATUS_ERROR_INVALID_ARGUMENT; |
| 170 case chromeos::MOUNT_ERROR_INVALID_PATH: | 170 case chromeos::MOUNT_ERROR_INVALID_PATH: |
| 171 return file_browser_private::MOUNT_COMPLETED_STATUS_ERROR_INVALID_PATH; | 171 return file_manager_private::MOUNT_COMPLETED_STATUS_ERROR_INVALID_PATH; |
| 172 case chromeos::MOUNT_ERROR_PATH_ALREADY_MOUNTED: | 172 case chromeos::MOUNT_ERROR_PATH_ALREADY_MOUNTED: |
| 173 return file_browser_private:: | 173 return file_manager_private:: |
| 174 MOUNT_COMPLETED_STATUS_ERROR_PATH_ALREADY_MOUNTED; | 174 MOUNT_COMPLETED_STATUS_ERROR_PATH_ALREADY_MOUNTED; |
| 175 case chromeos::MOUNT_ERROR_PATH_NOT_MOUNTED: | 175 case chromeos::MOUNT_ERROR_PATH_NOT_MOUNTED: |
| 176 return file_browser_private:: | 176 return file_manager_private:: |
| 177 MOUNT_COMPLETED_STATUS_ERROR_PATH_NOT_MOUNTED; | 177 MOUNT_COMPLETED_STATUS_ERROR_PATH_NOT_MOUNTED; |
| 178 case chromeos::MOUNT_ERROR_DIRECTORY_CREATION_FAILED: | 178 case chromeos::MOUNT_ERROR_DIRECTORY_CREATION_FAILED: |
| 179 return file_browser_private | 179 return file_manager_private |
| 180 ::MOUNT_COMPLETED_STATUS_ERROR_DIRECTORY_CREATION_FAILED; | 180 ::MOUNT_COMPLETED_STATUS_ERROR_DIRECTORY_CREATION_FAILED; |
| 181 case chromeos::MOUNT_ERROR_INVALID_MOUNT_OPTIONS: | 181 case chromeos::MOUNT_ERROR_INVALID_MOUNT_OPTIONS: |
| 182 return file_browser_private | 182 return file_manager_private |
| 183 ::MOUNT_COMPLETED_STATUS_ERROR_INVALID_MOUNT_OPTIONS; | 183 ::MOUNT_COMPLETED_STATUS_ERROR_INVALID_MOUNT_OPTIONS; |
| 184 case chromeos::MOUNT_ERROR_INVALID_UNMOUNT_OPTIONS: | 184 case chromeos::MOUNT_ERROR_INVALID_UNMOUNT_OPTIONS: |
| 185 return file_browser_private:: | 185 return file_manager_private:: |
| 186 MOUNT_COMPLETED_STATUS_ERROR_INVALID_UNMOUNT_OPTIONS; | 186 MOUNT_COMPLETED_STATUS_ERROR_INVALID_UNMOUNT_OPTIONS; |
| 187 case chromeos::MOUNT_ERROR_INSUFFICIENT_PERMISSIONS: | 187 case chromeos::MOUNT_ERROR_INSUFFICIENT_PERMISSIONS: |
| 188 return file_browser_private:: | 188 return file_manager_private:: |
| 189 MOUNT_COMPLETED_STATUS_ERROR_INSUFFICIENT_PERMISSIONS; | 189 MOUNT_COMPLETED_STATUS_ERROR_INSUFFICIENT_PERMISSIONS; |
| 190 case chromeos::MOUNT_ERROR_MOUNT_PROGRAM_NOT_FOUND: | 190 case chromeos::MOUNT_ERROR_MOUNT_PROGRAM_NOT_FOUND: |
| 191 return file_browser_private:: | 191 return file_manager_private:: |
| 192 MOUNT_COMPLETED_STATUS_ERROR_MOUNT_PROGRAM_NOT_FOUND; | 192 MOUNT_COMPLETED_STATUS_ERROR_MOUNT_PROGRAM_NOT_FOUND; |
| 193 case chromeos::MOUNT_ERROR_MOUNT_PROGRAM_FAILED: | 193 case chromeos::MOUNT_ERROR_MOUNT_PROGRAM_FAILED: |
| 194 return file_browser_private:: | 194 return file_manager_private:: |
| 195 MOUNT_COMPLETED_STATUS_ERROR_MOUNT_PROGRAM_FAILED; | 195 MOUNT_COMPLETED_STATUS_ERROR_MOUNT_PROGRAM_FAILED; |
| 196 case chromeos::MOUNT_ERROR_INVALID_DEVICE_PATH: | 196 case chromeos::MOUNT_ERROR_INVALID_DEVICE_PATH: |
| 197 return file_browser_private:: | 197 return file_manager_private:: |
| 198 MOUNT_COMPLETED_STATUS_ERROR_INVALID_DEVICE_PATH; | 198 MOUNT_COMPLETED_STATUS_ERROR_INVALID_DEVICE_PATH; |
| 199 case chromeos::MOUNT_ERROR_UNKNOWN_FILESYSTEM: | 199 case chromeos::MOUNT_ERROR_UNKNOWN_FILESYSTEM: |
| 200 return file_browser_private:: | 200 return file_manager_private:: |
| 201 MOUNT_COMPLETED_STATUS_ERROR_UNKNOWN_FILESYSTEM; | 201 MOUNT_COMPLETED_STATUS_ERROR_UNKNOWN_FILESYSTEM; |
| 202 case chromeos::MOUNT_ERROR_UNSUPPORTED_FILESYSTEM: | 202 case chromeos::MOUNT_ERROR_UNSUPPORTED_FILESYSTEM: |
| 203 return file_browser_private:: | 203 return file_manager_private:: |
| 204 MOUNT_COMPLETED_STATUS_ERROR_UNSUPPORTED_FILESYSTEM; | 204 MOUNT_COMPLETED_STATUS_ERROR_UNSUPPORTED_FILESYSTEM; |
| 205 case chromeos::MOUNT_ERROR_INVALID_ARCHIVE: | 205 case chromeos::MOUNT_ERROR_INVALID_ARCHIVE: |
| 206 return file_browser_private::MOUNT_COMPLETED_STATUS_ERROR_INVALID_ARCHIVE; | 206 return file_manager_private::MOUNT_COMPLETED_STATUS_ERROR_INVALID_ARCHIVE; |
| 207 case chromeos::MOUNT_ERROR_NOT_AUTHENTICATED: | 207 case chromeos::MOUNT_ERROR_NOT_AUTHENTICATED: |
| 208 return file_browser_private::MOUNT_COMPLETED_STATUS_ERROR_AUTHENTICATION; | 208 return file_manager_private::MOUNT_COMPLETED_STATUS_ERROR_AUTHENTICATION; |
| 209 case chromeos::MOUNT_ERROR_PATH_UNMOUNTED: | 209 case chromeos::MOUNT_ERROR_PATH_UNMOUNTED: |
| 210 return file_browser_private::MOUNT_COMPLETED_STATUS_ERROR_PATH_UNMOUNTED; | 210 return file_manager_private::MOUNT_COMPLETED_STATUS_ERROR_PATH_UNMOUNTED; |
| 211 } | 211 } |
| 212 NOTREACHED(); | 212 NOTREACHED(); |
| 213 return file_browser_private::MOUNT_COMPLETED_STATUS_NONE; | 213 return file_manager_private::MOUNT_COMPLETED_STATUS_NONE; |
| 214 } | 214 } |
| 215 | 215 |
| 216 file_browser_private::CopyProgressStatusType | 216 file_manager_private::CopyProgressStatusType |
| 217 CopyProgressTypeToCopyProgressStatusType( | 217 CopyProgressTypeToCopyProgressStatusType( |
| 218 storage::FileSystemOperation::CopyProgressType type) { | 218 storage::FileSystemOperation::CopyProgressType type) { |
| 219 switch (type) { | 219 switch (type) { |
| 220 case storage::FileSystemOperation::BEGIN_COPY_ENTRY: | 220 case storage::FileSystemOperation::BEGIN_COPY_ENTRY: |
| 221 return file_browser_private::COPY_PROGRESS_STATUS_TYPE_BEGIN_COPY_ENTRY; | 221 return file_manager_private::COPY_PROGRESS_STATUS_TYPE_BEGIN_COPY_ENTRY; |
| 222 case storage::FileSystemOperation::END_COPY_ENTRY: | 222 case storage::FileSystemOperation::END_COPY_ENTRY: |
| 223 return file_browser_private::COPY_PROGRESS_STATUS_TYPE_END_COPY_ENTRY; | 223 return file_manager_private::COPY_PROGRESS_STATUS_TYPE_END_COPY_ENTRY; |
| 224 case storage::FileSystemOperation::PROGRESS: | 224 case storage::FileSystemOperation::PROGRESS: |
| 225 return file_browser_private::COPY_PROGRESS_STATUS_TYPE_PROGRESS; | 225 return file_manager_private::COPY_PROGRESS_STATUS_TYPE_PROGRESS; |
| 226 } | 226 } |
| 227 NOTREACHED(); | 227 NOTREACHED(); |
| 228 return file_browser_private::COPY_PROGRESS_STATUS_TYPE_NONE; | 228 return file_manager_private::COPY_PROGRESS_STATUS_TYPE_NONE; |
| 229 } | 229 } |
| 230 | 230 |
| 231 file_browser_private::ChangeType ConvertChangeTypeFromDriveToApi( | 231 file_manager_private::ChangeType ConvertChangeTypeFromDriveToApi( |
| 232 drive::FileChange::ChangeType type) { | 232 drive::FileChange::ChangeType type) { |
| 233 switch (type) { | 233 switch (type) { |
| 234 case drive::FileChange::ADD_OR_UPDATE: | 234 case drive::FileChange::ADD_OR_UPDATE: |
| 235 return file_browser_private::CHANGE_TYPE_ADD_OR_UPDATE; | 235 return file_manager_private::CHANGE_TYPE_ADD_OR_UPDATE; |
| 236 case drive::FileChange::DELETE: | 236 case drive::FileChange::DELETE: |
| 237 return file_browser_private::CHANGE_TYPE_DELETE; | 237 return file_manager_private::CHANGE_TYPE_DELETE; |
| 238 } | 238 } |
| 239 NOTREACHED(); | 239 NOTREACHED(); |
| 240 return file_browser_private::CHANGE_TYPE_ADD_OR_UPDATE; | 240 return file_manager_private::CHANGE_TYPE_ADD_OR_UPDATE; |
| 241 } | 241 } |
| 242 | 242 |
| 243 std::string FileErrorToErrorName(base::File::Error error_code) { | 243 std::string FileErrorToErrorName(base::File::Error error_code) { |
| 244 namespace js = extensions::api::file_browser_private; | 244 namespace js = extensions::api::file_manager_private; |
| 245 switch (error_code) { | 245 switch (error_code) { |
| 246 case base::File::FILE_ERROR_NOT_FOUND: | 246 case base::File::FILE_ERROR_NOT_FOUND: |
| 247 return "NotFoundError"; | 247 return "NotFoundError"; |
| 248 case base::File::FILE_ERROR_INVALID_OPERATION: | 248 case base::File::FILE_ERROR_INVALID_OPERATION: |
| 249 case base::File::FILE_ERROR_EXISTS: | 249 case base::File::FILE_ERROR_EXISTS: |
| 250 case base::File::FILE_ERROR_NOT_EMPTY: | 250 case base::File::FILE_ERROR_NOT_EMPTY: |
| 251 return "InvalidModificationError"; | 251 return "InvalidModificationError"; |
| 252 case base::File::FILE_ERROR_NOT_A_DIRECTORY: | 252 case base::File::FILE_ERROR_NOT_A_DIRECTORY: |
| 253 case base::File::FILE_ERROR_NOT_A_FILE: | 253 case base::File::FILE_ERROR_NOT_A_FILE: |
| 254 return "TypeMismatchError"; | 254 return "TypeMismatchError"; |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 322 | 322 |
| 323 return true; | 323 return true; |
| 324 } | 324 } |
| 325 | 325 |
| 326 // Sub-part of the event router for handling device events. | 326 // Sub-part of the event router for handling device events. |
| 327 class DeviceEventRouterImpl : public DeviceEventRouter { | 327 class DeviceEventRouterImpl : public DeviceEventRouter { |
| 328 public: | 328 public: |
| 329 explicit DeviceEventRouterImpl(Profile* profile) : profile_(profile) {} | 329 explicit DeviceEventRouterImpl(Profile* profile) : profile_(profile) {} |
| 330 | 330 |
| 331 // DeviceEventRouter overrides. | 331 // DeviceEventRouter overrides. |
| 332 virtual void OnDeviceEvent(file_browser_private::DeviceEventType type, | 332 virtual void OnDeviceEvent(file_manager_private::DeviceEventType type, |
| 333 const std::string& device_path) OVERRIDE { | 333 const std::string& device_path) OVERRIDE { |
| 334 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 334 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 335 | 335 |
| 336 file_browser_private::DeviceEvent event; | 336 file_manager_private::DeviceEvent event; |
| 337 event.type = type; | 337 event.type = type; |
| 338 event.device_path = device_path; | 338 event.device_path = device_path; |
| 339 | 339 |
| 340 BroadcastEvent(profile_, | 340 BroadcastEvent(profile_, |
| 341 file_browser_private::OnDeviceChanged::kEventName, | 341 file_manager_private::OnDeviceChanged::kEventName, |
| 342 file_browser_private::OnDeviceChanged::Create(event)); | 342 file_manager_private::OnDeviceChanged::Create(event)); |
| 343 } | 343 } |
| 344 | 344 |
| 345 // DeviceEventRouter overrides. | 345 // DeviceEventRouter overrides. |
| 346 virtual bool IsExternalStorageDisabled() OVERRIDE { | 346 virtual bool IsExternalStorageDisabled() OVERRIDE { |
| 347 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 347 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 348 return profile_->GetPrefs()->GetBoolean(prefs::kExternalStorageDisabled); | 348 return profile_->GetPrefs()->GetBoolean(prefs::kExternalStorageDisabled); |
| 349 } | 349 } |
| 350 | 350 |
| 351 private: | 351 private: |
| 352 Profile* const profile_; | 352 Profile* const profile_; |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 530 file_watchers_.erase(iter); | 530 file_watchers_.erase(iter); |
| 531 } | 531 } |
| 532 } | 532 } |
| 533 | 533 |
| 534 void EventRouter::OnCopyCompleted(int copy_id, | 534 void EventRouter::OnCopyCompleted(int copy_id, |
| 535 const GURL& source_url, | 535 const GURL& source_url, |
| 536 const GURL& destination_url, | 536 const GURL& destination_url, |
| 537 base::File::Error error) { | 537 base::File::Error error) { |
| 538 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 538 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 539 | 539 |
| 540 file_browser_private::CopyProgressStatus status; | 540 file_manager_private::CopyProgressStatus status; |
| 541 if (error == base::File::FILE_OK) { | 541 if (error == base::File::FILE_OK) { |
| 542 // Send success event. | 542 // Send success event. |
| 543 status.type = file_browser_private::COPY_PROGRESS_STATUS_TYPE_SUCCESS; | 543 status.type = file_manager_private::COPY_PROGRESS_STATUS_TYPE_SUCCESS; |
| 544 status.source_url.reset(new std::string(source_url.spec())); | 544 status.source_url.reset(new std::string(source_url.spec())); |
| 545 status.destination_url.reset(new std::string(destination_url.spec())); | 545 status.destination_url.reset(new std::string(destination_url.spec())); |
| 546 } else { | 546 } else { |
| 547 // Send error event. | 547 // Send error event. |
| 548 status.type = file_browser_private::COPY_PROGRESS_STATUS_TYPE_ERROR; | 548 status.type = file_manager_private::COPY_PROGRESS_STATUS_TYPE_ERROR; |
| 549 status.error.reset(new std::string(FileErrorToErrorName(error))); | 549 status.error.reset(new std::string(FileErrorToErrorName(error))); |
| 550 } | 550 } |
| 551 | 551 |
| 552 BroadcastEvent( | 552 BroadcastEvent( |
| 553 profile_, | 553 profile_, |
| 554 file_browser_private::OnCopyProgress::kEventName, | 554 file_manager_private::OnCopyProgress::kEventName, |
| 555 file_browser_private::OnCopyProgress::Create(copy_id, status)); | 555 file_manager_private::OnCopyProgress::Create(copy_id, status)); |
| 556 } | 556 } |
| 557 | 557 |
| 558 void EventRouter::OnCopyProgress( | 558 void EventRouter::OnCopyProgress( |
| 559 int copy_id, | 559 int copy_id, |
| 560 storage::FileSystemOperation::CopyProgressType type, | 560 storage::FileSystemOperation::CopyProgressType type, |
| 561 const GURL& source_url, | 561 const GURL& source_url, |
| 562 const GURL& destination_url, | 562 const GURL& destination_url, |
| 563 int64 size) { | 563 int64 size) { |
| 564 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 564 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 565 | 565 |
| 566 file_browser_private::CopyProgressStatus status; | 566 file_manager_private::CopyProgressStatus status; |
| 567 status.type = CopyProgressTypeToCopyProgressStatusType(type); | 567 status.type = CopyProgressTypeToCopyProgressStatusType(type); |
| 568 status.source_url.reset(new std::string(source_url.spec())); | 568 status.source_url.reset(new std::string(source_url.spec())); |
| 569 if (type == storage::FileSystemOperation::END_COPY_ENTRY) | 569 if (type == storage::FileSystemOperation::END_COPY_ENTRY) |
| 570 status.destination_url.reset(new std::string(destination_url.spec())); | 570 status.destination_url.reset(new std::string(destination_url.spec())); |
| 571 if (type == storage::FileSystemOperation::PROGRESS) | 571 if (type == storage::FileSystemOperation::PROGRESS) |
| 572 status.size.reset(new double(size)); | 572 status.size.reset(new double(size)); |
| 573 | 573 |
| 574 // Should not skip events other than TYPE_PROGRESS. | 574 // Should not skip events other than TYPE_PROGRESS. |
| 575 const bool always = | 575 const bool always = |
| 576 status.type != file_browser_private::COPY_PROGRESS_STATUS_TYPE_PROGRESS; | 576 status.type != file_manager_private::COPY_PROGRESS_STATUS_TYPE_PROGRESS; |
| 577 if (!ShouldSendProgressEvent(always, &last_copy_progress_event_)) | 577 if (!ShouldSendProgressEvent(always, &last_copy_progress_event_)) |
| 578 return; | 578 return; |
| 579 | 579 |
| 580 BroadcastEvent( | 580 BroadcastEvent( |
| 581 profile_, | 581 profile_, |
| 582 file_browser_private::OnCopyProgress::kEventName, | 582 file_manager_private::OnCopyProgress::kEventName, |
| 583 file_browser_private::OnCopyProgress::Create(copy_id, status)); | 583 file_manager_private::OnCopyProgress::Create(copy_id, status)); |
| 584 } | 584 } |
| 585 | 585 |
| 586 void EventRouter::DefaultNetworkChanged(const chromeos::NetworkState* network) { | 586 void EventRouter::DefaultNetworkChanged(const chromeos::NetworkState* network) { |
| 587 if (!profile_ || !extensions::EventRouter::Get(profile_)) { | 587 if (!profile_ || !extensions::EventRouter::Get(profile_)) { |
| 588 NOTREACHED(); | 588 NOTREACHED(); |
| 589 return; | 589 return; |
| 590 } | 590 } |
| 591 | 591 |
| 592 BroadcastEvent( | 592 BroadcastEvent( |
| 593 profile_, | 593 profile_, |
| 594 file_browser_private::OnDriveConnectionStatusChanged::kEventName, | 594 file_manager_private::OnDriveConnectionStatusChanged::kEventName, |
| 595 file_browser_private::OnDriveConnectionStatusChanged::Create()); | 595 file_manager_private::OnDriveConnectionStatusChanged::Create()); |
| 596 } | 596 } |
| 597 | 597 |
| 598 void EventRouter::OnFileManagerPrefsChanged() { | 598 void EventRouter::OnFileManagerPrefsChanged() { |
| 599 if (!profile_ || !extensions::EventRouter::Get(profile_)) { | 599 if (!profile_ || !extensions::EventRouter::Get(profile_)) { |
| 600 NOTREACHED(); | 600 NOTREACHED(); |
| 601 return; | 601 return; |
| 602 } | 602 } |
| 603 | 603 |
| 604 BroadcastEvent( | 604 BroadcastEvent( |
| 605 profile_, | 605 profile_, |
| 606 file_browser_private::OnPreferencesChanged::kEventName, | 606 file_manager_private::OnPreferencesChanged::kEventName, |
| 607 file_browser_private::OnPreferencesChanged::Create()); | 607 file_manager_private::OnPreferencesChanged::Create()); |
| 608 } | 608 } |
| 609 | 609 |
| 610 void EventRouter::OnJobAdded(const drive::JobInfo& job_info) { | 610 void EventRouter::OnJobAdded(const drive::JobInfo& job_info) { |
| 611 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 611 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 612 if (!drive::IsActiveFileTransferJobInfo(job_info)) | 612 if (!drive::IsActiveFileTransferJobInfo(job_info)) |
| 613 return; | 613 return; |
| 614 ScheduleDriveFileTransferEvent( | 614 ScheduleDriveFileTransferEvent( |
| 615 job_info, kFileTransferStateAdded, false /* immediate */); | 615 job_info, kFileTransferStateAdded, false /* immediate */); |
| 616 } | 616 } |
| 617 | 617 |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 664 base::Bind(&EventRouter::SendDriveFileTransferEvent, | 664 base::Bind(&EventRouter::SendDriveFileTransferEvent, |
| 665 weak_factory_.GetWeakPtr()), | 665 weak_factory_.GetWeakPtr()), |
| 666 delay); | 666 delay); |
| 667 } | 667 } |
| 668 } | 668 } |
| 669 | 669 |
| 670 void EventRouter::SendDriveFileTransferEvent() { | 670 void EventRouter::SendDriveFileTransferEvent() { |
| 671 if (!drive_job_info_for_scheduled_event_) | 671 if (!drive_job_info_for_scheduled_event_) |
| 672 return; | 672 return; |
| 673 | 673 |
| 674 file_browser_private::FileTransferStatus status; | 674 file_manager_private::FileTransferStatus status; |
| 675 JobInfoToTransferStatus(profile_, | 675 JobInfoToTransferStatus(profile_, |
| 676 kFileManagerAppId, | 676 kFileManagerAppId, |
| 677 drive_job_info_for_scheduled_event_->status, | 677 drive_job_info_for_scheduled_event_->status, |
| 678 drive_job_info_for_scheduled_event_->job_info, | 678 drive_job_info_for_scheduled_event_->job_info, |
| 679 &status); | 679 &status); |
| 680 | 680 |
| 681 drive_job_info_for_scheduled_event_.reset(); | 681 drive_job_info_for_scheduled_event_.reset(); |
| 682 | 682 |
| 683 BroadcastEvent(profile_, | 683 BroadcastEvent(profile_, |
| 684 file_browser_private::OnFileTransfersUpdated::kEventName, | 684 file_manager_private::OnFileTransfersUpdated::kEventName, |
| 685 file_browser_private::OnFileTransfersUpdated::Create(status)); | 685 file_manager_private::OnFileTransfersUpdated::Create(status)); |
| 686 } | 686 } |
| 687 | 687 |
| 688 void EventRouter::OnDirectoryChanged(const base::FilePath& drive_path) { | 688 void EventRouter::OnDirectoryChanged(const base::FilePath& drive_path) { |
| 689 HandleFileWatchNotification(NULL, drive_path, false); | 689 HandleFileWatchNotification(NULL, drive_path, false); |
| 690 } | 690 } |
| 691 | 691 |
| 692 void EventRouter::OnFileChanged(const drive::FileChange& changed_files) { | 692 void EventRouter::OnFileChanged(const drive::FileChange& changed_files) { |
| 693 typedef std::map<base::FilePath, drive::FileChange> FileChangeMap; | 693 typedef std::map<base::FilePath, drive::FileChange> FileChangeMap; |
| 694 | 694 |
| 695 FileChangeMap map; | 695 FileChangeMap map; |
| 696 const drive::FileChange::Map& changed_file_map = changed_files.map(); | 696 const drive::FileChange::Map& changed_file_map = changed_files.map(); |
| 697 for (drive::FileChange::Map::const_iterator it = changed_file_map.begin(); | 697 for (drive::FileChange::Map::const_iterator it = changed_file_map.begin(); |
| 698 it != changed_file_map.end(); | 698 it != changed_file_map.end(); |
| 699 it++) { | 699 it++) { |
| 700 const base::FilePath& path = it->first; | 700 const base::FilePath& path = it->first; |
| 701 map[path.DirName()].Update(path, it->second); | 701 map[path.DirName()].Update(path, it->second); |
| 702 } | 702 } |
| 703 | 703 |
| 704 for (FileChangeMap::const_iterator it = map.begin(); it != map.end(); it++) { | 704 for (FileChangeMap::const_iterator it = map.begin(); it != map.end(); it++) { |
| 705 HandleFileWatchNotification(&(it->second), it->first, false); | 705 HandleFileWatchNotification(&(it->second), it->first, false); |
| 706 } | 706 } |
| 707 } | 707 } |
| 708 | 708 |
| 709 void EventRouter::OnDriveSyncError(drive::file_system::DriveSyncErrorType type, | 709 void EventRouter::OnDriveSyncError(drive::file_system::DriveSyncErrorType type, |
| 710 const base::FilePath& drive_path) { | 710 const base::FilePath& drive_path) { |
| 711 file_browser_private::DriveSyncErrorEvent event; | 711 file_manager_private::DriveSyncErrorEvent event; |
| 712 switch (type) { | 712 switch (type) { |
| 713 case drive::file_system::DRIVE_SYNC_ERROR_DELETE_WITHOUT_PERMISSION: | 713 case drive::file_system::DRIVE_SYNC_ERROR_DELETE_WITHOUT_PERMISSION: |
| 714 event.type = | 714 event.type = |
| 715 file_browser_private::DRIVE_SYNC_ERROR_TYPE_DELETE_WITHOUT_PERMISSION; | 715 file_manager_private::DRIVE_SYNC_ERROR_TYPE_DELETE_WITHOUT_PERMISSION; |
| 716 break; | 716 break; |
| 717 case drive::file_system::DRIVE_SYNC_ERROR_SERVICE_UNAVAILABLE: | 717 case drive::file_system::DRIVE_SYNC_ERROR_SERVICE_UNAVAILABLE: |
| 718 event.type = | 718 event.type = |
| 719 file_browser_private::DRIVE_SYNC_ERROR_TYPE_SERVICE_UNAVAILABLE; | 719 file_manager_private::DRIVE_SYNC_ERROR_TYPE_SERVICE_UNAVAILABLE; |
| 720 break; | 720 break; |
| 721 case drive::file_system::DRIVE_SYNC_ERROR_MISC: | 721 case drive::file_system::DRIVE_SYNC_ERROR_MISC: |
| 722 event.type = | 722 event.type = |
| 723 file_browser_private::DRIVE_SYNC_ERROR_TYPE_MISC; | 723 file_manager_private::DRIVE_SYNC_ERROR_TYPE_MISC; |
| 724 break; | 724 break; |
| 725 } | 725 } |
| 726 event.file_url = util::ConvertDrivePathToFileSystemUrl( | 726 event.file_url = util::ConvertDrivePathToFileSystemUrl( |
| 727 profile_, drive_path, kFileManagerAppId).spec(); | 727 profile_, drive_path, kFileManagerAppId).spec(); |
| 728 BroadcastEvent( | 728 BroadcastEvent( |
| 729 profile_, | 729 profile_, |
| 730 file_browser_private::OnDriveSyncError::kEventName, | 730 file_manager_private::OnDriveSyncError::kEventName, |
| 731 file_browser_private::OnDriveSyncError::Create(event)); | 731 file_manager_private::OnDriveSyncError::Create(event)); |
| 732 } | 732 } |
| 733 | 733 |
| 734 void EventRouter::OnRefreshTokenInvalid() { | 734 void EventRouter::OnRefreshTokenInvalid() { |
| 735 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 735 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 736 | 736 |
| 737 // Raise a DriveConnectionStatusChanged event to notify the status offline. | 737 // Raise a DriveConnectionStatusChanged event to notify the status offline. |
| 738 BroadcastEvent( | 738 BroadcastEvent( |
| 739 profile_, | 739 profile_, |
| 740 file_browser_private::OnDriveConnectionStatusChanged::kEventName, | 740 file_manager_private::OnDriveConnectionStatusChanged::kEventName, |
| 741 file_browser_private::OnDriveConnectionStatusChanged::Create()); | 741 file_manager_private::OnDriveConnectionStatusChanged::Create()); |
| 742 } | 742 } |
| 743 | 743 |
| 744 void EventRouter::HandleFileWatchNotification(const drive::FileChange* list, | 744 void EventRouter::HandleFileWatchNotification(const drive::FileChange* list, |
| 745 const base::FilePath& local_path, | 745 const base::FilePath& local_path, |
| 746 bool got_error) { | 746 bool got_error) { |
| 747 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 747 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 748 | 748 |
| 749 WatcherMap::const_iterator iter = file_watchers_.find(local_path); | 749 WatcherMap::const_iterator iter = file_watchers_.find(local_path); |
| 750 if (iter == file_watchers_.end()) { | 750 if (iter == file_watchers_.end()) { |
| 751 return; | 751 return; |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 805 const EntryDefinition& entry_definition) { | 805 const EntryDefinition& entry_definition) { |
| 806 typedef std::map<base::FilePath, drive::FileChange::ChangeList> ChangeListMap; | 806 typedef std::map<base::FilePath, drive::FileChange::ChangeList> ChangeListMap; |
| 807 | 807 |
| 808 if (entry_definition.error != base::File::FILE_OK || | 808 if (entry_definition.error != base::File::FILE_OK || |
| 809 !entry_definition.is_directory) { | 809 !entry_definition.is_directory) { |
| 810 DVLOG(1) << "Unable to dispatch event because resolving the directory " | 810 DVLOG(1) << "Unable to dispatch event because resolving the directory " |
| 811 << "entry definition failed."; | 811 << "entry definition failed."; |
| 812 return; | 812 return; |
| 813 } | 813 } |
| 814 | 814 |
| 815 file_browser_private::FileWatchEvent event; | 815 file_manager_private::FileWatchEvent event; |
| 816 event.event_type = watcher_error | 816 event.event_type = watcher_error |
| 817 ? file_browser_private::FILE_WATCH_EVENT_TYPE_ERROR | 817 ? file_manager_private::FILE_WATCH_EVENT_TYPE_ERROR |
| 818 : file_browser_private::FILE_WATCH_EVENT_TYPE_CHANGED; | 818 : file_manager_private::FILE_WATCH_EVENT_TYPE_CHANGED; |
| 819 | 819 |
| 820 // Detailed information is available. | 820 // Detailed information is available. |
| 821 if (list.get()) { | 821 if (list.get()) { |
| 822 event.changed_files.reset( | 822 event.changed_files.reset( |
| 823 new std::vector<linked_ptr<file_browser_private::FileChange> >); | 823 new std::vector<linked_ptr<file_manager_private::FileChange> >); |
| 824 | 824 |
| 825 if (list->map().empty()) | 825 if (list->map().empty()) |
| 826 return; | 826 return; |
| 827 | 827 |
| 828 for (drive::FileChange::Map::const_iterator it = list->map().begin(); | 828 for (drive::FileChange::Map::const_iterator it = list->map().begin(); |
| 829 it != list->map().end(); | 829 it != list->map().end(); |
| 830 it++) { | 830 it++) { |
| 831 linked_ptr<file_browser_private::FileChange> change_list( | 831 linked_ptr<file_manager_private::FileChange> change_list( |
| 832 new file_browser_private::FileChange); | 832 new file_manager_private::FileChange); |
| 833 | 833 |
| 834 GURL url = util::ConvertDrivePathToFileSystemUrl( | 834 GURL url = util::ConvertDrivePathToFileSystemUrl( |
| 835 profile_, it->first, *extension_id); | 835 profile_, it->first, *extension_id); |
| 836 change_list->url = url.spec(); | 836 change_list->url = url.spec(); |
| 837 | 837 |
| 838 for (drive::FileChange::ChangeList::List::const_iterator change = | 838 for (drive::FileChange::ChangeList::List::const_iterator change = |
| 839 it->second.list().begin(); | 839 it->second.list().begin(); |
| 840 change != it->second.list().end(); | 840 change != it->second.list().end(); |
| 841 change++) { | 841 change++) { |
| 842 change_list->changes.push_back( | 842 change_list->changes.push_back( |
| 843 ConvertChangeTypeFromDriveToApi(change->change())); | 843 ConvertChangeTypeFromDriveToApi(change->change())); |
| 844 } | 844 } |
| 845 | 845 |
| 846 event.changed_files->push_back(change_list); | 846 event.changed_files->push_back(change_list); |
| 847 } | 847 } |
| 848 } | 848 } |
| 849 | 849 |
| 850 event.entry.additional_properties.SetString( | 850 event.entry.additional_properties.SetString( |
| 851 "fileSystemName", entry_definition.file_system_name); | 851 "fileSystemName", entry_definition.file_system_name); |
| 852 event.entry.additional_properties.SetString( | 852 event.entry.additional_properties.SetString( |
| 853 "fileSystemRoot", entry_definition.file_system_root_url); | 853 "fileSystemRoot", entry_definition.file_system_root_url); |
| 854 event.entry.additional_properties.SetString( | 854 event.entry.additional_properties.SetString( |
| 855 "fileFullPath", "/" + entry_definition.full_path.value()); | 855 "fileFullPath", "/" + entry_definition.full_path.value()); |
| 856 event.entry.additional_properties.SetBoolean("fileIsDirectory", | 856 event.entry.additional_properties.SetBoolean("fileIsDirectory", |
| 857 entry_definition.is_directory); | 857 entry_definition.is_directory); |
| 858 | 858 |
| 859 BroadcastEvent(profile_, | 859 BroadcastEvent(profile_, |
| 860 file_browser_private::OnDirectoryChanged::kEventName, | 860 file_manager_private::OnDirectoryChanged::kEventName, |
| 861 file_browser_private::OnDirectoryChanged::Create(event)); | 861 file_manager_private::OnDirectoryChanged::Create(event)); |
| 862 } | 862 } |
| 863 | 863 |
| 864 void EventRouter::OnDiskAdded( | 864 void EventRouter::OnDiskAdded( |
| 865 const DiskMountManager::Disk& disk, bool mounting) { | 865 const DiskMountManager::Disk& disk, bool mounting) { |
| 866 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 866 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 867 // Do nothing. | 867 // Do nothing. |
| 868 } | 868 } |
| 869 | 869 |
| 870 void EventRouter::OnDiskRemoved(const DiskMountManager::Disk& disk) { | 870 void EventRouter::OnDiskRemoved(const DiskMountManager::Disk& disk) { |
| 871 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 871 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 886 const VolumeInfo& volume_info) { | 886 const VolumeInfo& volume_info) { |
| 887 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 887 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 888 // profile_ is NULL if ShutdownOnUIThread() is called earlier. This can | 888 // profile_ is NULL if ShutdownOnUIThread() is called earlier. This can |
| 889 // happen at shutdown. This should be removed after removing Drive mounting | 889 // happen at shutdown. This should be removed after removing Drive mounting |
| 890 // code in addMount. (addMount -> OnFileSystemMounted -> OnVolumeMounted is | 890 // code in addMount. (addMount -> OnFileSystemMounted -> OnVolumeMounted is |
| 891 // the only path to come here after Shutdown is called). | 891 // the only path to come here after Shutdown is called). |
| 892 if (!profile_) | 892 if (!profile_) |
| 893 return; | 893 return; |
| 894 | 894 |
| 895 DispatchMountCompletedEvent( | 895 DispatchMountCompletedEvent( |
| 896 file_browser_private::MOUNT_COMPLETED_EVENT_TYPE_MOUNT, | 896 file_manager_private::MOUNT_COMPLETED_EVENT_TYPE_MOUNT, |
| 897 error_code, | 897 error_code, |
| 898 volume_info); | 898 volume_info); |
| 899 } | 899 } |
| 900 | 900 |
| 901 void EventRouter::OnVolumeUnmounted(chromeos::MountError error_code, | 901 void EventRouter::OnVolumeUnmounted(chromeos::MountError error_code, |
| 902 const VolumeInfo& volume_info) { | 902 const VolumeInfo& volume_info) { |
| 903 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 903 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 904 DispatchMountCompletedEvent( | 904 DispatchMountCompletedEvent( |
| 905 file_browser_private::MOUNT_COMPLETED_EVENT_TYPE_UNMOUNT, | 905 file_manager_private::MOUNT_COMPLETED_EVENT_TYPE_UNMOUNT, |
| 906 error_code, | 906 error_code, |
| 907 volume_info); | 907 volume_info); |
| 908 } | 908 } |
| 909 | 909 |
| 910 void EventRouter::DispatchMountCompletedEvent( | 910 void EventRouter::DispatchMountCompletedEvent( |
| 911 file_browser_private::MountCompletedEventType event_type, | 911 file_manager_private::MountCompletedEventType event_type, |
| 912 chromeos::MountError error, | 912 chromeos::MountError error, |
| 913 const VolumeInfo& volume_info) { | 913 const VolumeInfo& volume_info) { |
| 914 // Build an event object. | 914 // Build an event object. |
| 915 file_browser_private::MountCompletedEvent event; | 915 file_manager_private::MountCompletedEvent event; |
| 916 event.event_type = event_type; | 916 event.event_type = event_type; |
| 917 event.status = MountErrorToMountCompletedStatus(error); | 917 event.status = MountErrorToMountCompletedStatus(error); |
| 918 util::VolumeInfoToVolumeMetadata( | 918 util::VolumeInfoToVolumeMetadata( |
| 919 profile_, volume_info, &event.volume_metadata); | 919 profile_, volume_info, &event.volume_metadata); |
| 920 event.should_notify = ShouldShowNotificationForVolume( | 920 event.should_notify = ShouldShowNotificationForVolume( |
| 921 profile_, *device_event_router_, volume_info); | 921 profile_, *device_event_router_, volume_info); |
| 922 BroadcastEvent(profile_, | 922 BroadcastEvent(profile_, |
| 923 file_browser_private::OnMountCompleted::kEventName, | 923 file_manager_private::OnMountCompleted::kEventName, |
| 924 file_browser_private::OnMountCompleted::Create(event)); | 924 file_manager_private::OnMountCompleted::Create(event)); |
| 925 } | 925 } |
| 926 | 926 |
| 927 void EventRouter::OnFormatStarted(const std::string& device_path, | 927 void EventRouter::OnFormatStarted(const std::string& device_path, |
| 928 bool success) { | 928 bool success) { |
| 929 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 929 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 930 // Do nothing. | 930 // Do nothing. |
| 931 } | 931 } |
| 932 | 932 |
| 933 void EventRouter::OnFormatCompleted(const std::string& device_path, | 933 void EventRouter::OnFormatCompleted(const std::string& device_path, |
| 934 bool success) { | 934 bool success) { |
| 935 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 935 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 936 // Do nothing. | 936 // Do nothing. |
| 937 } | 937 } |
| 938 | 938 |
| 939 } // namespace file_manager | 939 } // namespace file_manager |
| OLD | NEW |