OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/extension_file_browser_private_api.h" | 5 #include "chrome/browser/extensions/extension_file_browser_private_api.h" |
6 | 6 |
7 #include "base/base64.h" | 7 #include "base/base64.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/json/json_writer.h" | 9 #include "base/json/json_writer.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 632 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
643 BrowserThread::UI, FROM_HERE, | 643 BrowserThread::UI, FROM_HERE, |
644 NewRunnableMethod(function_, | 644 NewRunnableMethod(function_, |
645 &ExecuteTasksFileBrowserFunction::ExecuteFailedOnUIThread)); | 645 &ExecuteTasksFileBrowserFunction::ExecuteFailedOnUIThread)); |
646 } | 646 } |
647 | 647 |
648 private: | 648 private: |
649 // Checks legitimacy of file url and grants file RO access permissions from | 649 // Checks legitimacy of file url and grants file RO access permissions from |
650 // handler (target) extension and its renderer process. | 650 // handler (target) extension and its renderer process. |
651 bool SetupFileAccessPermissions(const GURL& origin_file_url, | 651 bool SetupFileAccessPermissions(const GURL& origin_file_url, |
652 GURL* target_file_url, FilePath* file_path, bool* is_directory) { | 652 GURL* target_file_url, FilePath* file_path, bool* is_directory) { |
653 | |
654 if (!extension_.get()) | 653 if (!extension_.get()) |
655 return false; | 654 return false; |
656 | 655 |
657 GURL file_origin_url; | 656 GURL file_origin_url; |
658 FilePath virtual_path; | 657 FilePath virtual_path; |
659 fileapi::FileSystemType type; | 658 fileapi::FileSystemType type; |
660 if (!CrackFileSystemURL(origin_file_url, &file_origin_url, &type, | 659 if (!CrackFileSystemURL(origin_file_url, &file_origin_url, &type, |
661 &virtual_path)) { | 660 &virtual_path)) { |
662 return false; | 661 return false; |
663 } | 662 } |
(...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1276 } | 1275 } |
1277 | 1276 |
1278 FormatDeviceFunction::~FormatDeviceFunction() { | 1277 FormatDeviceFunction::~FormatDeviceFunction() { |
1279 } | 1278 } |
1280 | 1279 |
1281 bool FormatDeviceFunction::RunImpl() { | 1280 bool FormatDeviceFunction::RunImpl() { |
1282 if (args_->GetSize() != 1) { | 1281 if (args_->GetSize() != 1) { |
1283 return false; | 1282 return false; |
1284 } | 1283 } |
1285 | 1284 |
1286 std::string volume_mount_path; | 1285 std::string volume_file_url; |
1287 if (!args_->GetString(0, &volume_mount_path)) { | 1286 if (!args_->GetString(0, &volume_file_url)) { |
1288 NOTREACHED(); | 1287 NOTREACHED(); |
1289 return false; | 1288 return false; |
1290 } | 1289 } |
1291 | 1290 |
| 1291 UrlList file_paths; |
| 1292 file_paths.push_back(GURL(volume_file_url)); |
| 1293 |
| 1294 BrowserThread::PostTask( |
| 1295 BrowserThread::FILE, FROM_HERE, |
| 1296 NewRunnableMethod(this, |
| 1297 &FormatDeviceFunction::GetLocalPathsOnFileThread, |
| 1298 file_paths, reinterpret_cast<void*>(NULL))); |
| 1299 return true; |
| 1300 } |
| 1301 |
| 1302 void FormatDeviceFunction::GetLocalPathsResponseOnUIThread( |
| 1303 const FilePathList& files, void* context) { |
| 1304 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 1305 |
| 1306 if (files.size() != 1) { |
| 1307 SendResponse(false); |
| 1308 return; |
| 1309 } |
| 1310 |
1292 #ifdef OS_CHROMEOS | 1311 #ifdef OS_CHROMEOS |
1293 chromeos::CrosLibrary::Get()->GetMountLibrary()->FormatMountedDevice( | 1312 chromeos::CrosLibrary::Get()->GetMountLibrary()->FormatMountedDevice( |
1294 volume_mount_path.c_str()); | 1313 files[0].value().c_str()); |
1295 #endif | 1314 #endif |
1296 | 1315 |
1297 SendResponse(true); | 1316 SendResponse(true); |
1298 return true; | |
1299 } | 1317 } |
1300 | 1318 |
1301 GetVolumeMetadataFunction::GetVolumeMetadataFunction() { | 1319 GetVolumeMetadataFunction::GetVolumeMetadataFunction() { |
1302 } | 1320 } |
1303 | 1321 |
1304 GetVolumeMetadataFunction::~GetVolumeMetadataFunction() { | 1322 GetVolumeMetadataFunction::~GetVolumeMetadataFunction() { |
1305 } | 1323 } |
1306 | 1324 |
1307 bool GetVolumeMetadataFunction::RunImpl() { | 1325 bool GetVolumeMetadataFunction::RunImpl() { |
1308 if (args_->GetSize() != 1) { | 1326 if (args_->GetSize() != 1) { |
1309 error_ = "Invalid argument count"; | 1327 error_ = "Invalid argument count"; |
1310 return false; | 1328 return false; |
1311 } | 1329 } |
1312 | 1330 |
1313 std::string volume_device_path; | 1331 std::string volume_device_path; |
1314 if (!args_->GetString(0, &volume_device_path)) { | 1332 if (!args_->GetString(0, &volume_device_path)) { |
1315 NOTREACHED(); | 1333 NOTREACHED(); |
1316 } | 1334 } |
1317 | 1335 |
1318 #ifdef OS_CHROMEOS | 1336 #ifdef OS_CHROMEOS |
1319 chromeos::MountLibrary* mount_lib = | 1337 chromeos::MountLibrary* mount_lib = |
1320 chromeos::CrosLibrary::Get()->GetMountLibrary(); | 1338 chromeos::CrosLibrary::Get()->GetMountLibrary(); |
1321 chromeos::MountLibrary::DiskMap::const_iterator volume_it = | 1339 chromeos::MountLibrary::DiskMap::const_iterator volume_it = |
1322 mount_lib->disks().find(volume_device_path); | 1340 mount_lib->disks().find(volume_device_path); |
1323 | 1341 |
1324 if (volume_it != mount_lib->disks().end()) { | 1342 if (volume_it != mount_lib->disks().end()) { |
1325 chromeos::MountLibrary::Disk* volume = volume_it->second; | 1343 chromeos::MountLibrary::Disk* volume = volume_it->second; |
1326 DictionaryValue* volume_info = new DictionaryValue(); | 1344 DictionaryValue* volume_info = new DictionaryValue(); |
1327 result_.reset(volume_info); | 1345 result_.reset(volume_info); |
| 1346 // Localising mount path. |
| 1347 FilePath relative_mount_path; |
| 1348 FileManagerUtil::ConvertFileToRelativeFileSystemPath(profile_, |
| 1349 FilePath(volume->mount_path()), &relative_mount_path); |
| 1350 |
1328 volume_info->SetString("devicePath", volume->device_path()); | 1351 volume_info->SetString("devicePath", volume->device_path()); |
1329 volume_info->SetString("mountPath", volume->mount_path()); | 1352 volume_info->SetString("mountPath", relative_mount_path.value()); |
1330 volume_info->SetString("systemPath", volume->system_path()); | 1353 volume_info->SetString("systemPath", volume->system_path()); |
1331 volume_info->SetString("filePath", volume->file_path()); | 1354 volume_info->SetString("filePath", volume->file_path()); |
1332 volume_info->SetString("deviceLabel", volume->device_label()); | 1355 volume_info->SetString("deviceLabel", volume->device_label()); |
1333 volume_info->SetString("driveLabel", volume->drive_label()); | 1356 volume_info->SetString("driveLabel", volume->drive_label()); |
1334 volume_info->SetString("deviceType", | 1357 volume_info->SetString("deviceType", |
1335 DeviceTypeToString(volume->device_type())); | 1358 DeviceTypeToString(volume->device_type())); |
1336 volume_info->SetInteger("totalSize", volume->total_size()); | 1359 volume_info->SetInteger("totalSize", volume->total_size()); |
1337 volume_info->SetBoolean("isParent", volume->is_parent()); | 1360 volume_info->SetBoolean("isParent", volume->is_parent()); |
1338 volume_info->SetBoolean("isReadOnly", volume->is_read_only()); | 1361 volume_info->SetBoolean("isReadOnly", volume->is_read_only()); |
1339 volume_info->SetBoolean("hasMedia", volume->has_media()); | 1362 volume_info->SetBoolean("hasMedia", volume->has_media()); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1398 SET_STRING(IDS_FILE_BROWSER, DIMENSIONS_FORMAT); | 1421 SET_STRING(IDS_FILE_BROWSER, DIMENSIONS_FORMAT); |
1399 | 1422 |
1400 SET_STRING(IDS_FILE_BROWSER, EJECT_BUTTON); | 1423 SET_STRING(IDS_FILE_BROWSER, EJECT_BUTTON); |
1401 SET_STRING(IDS_FILE_BROWSER, IMAGE_DIMENSIONS); | 1424 SET_STRING(IDS_FILE_BROWSER, IMAGE_DIMENSIONS); |
1402 SET_STRING(IDS_FILE_BROWSER, VOLUME_LABEL); | 1425 SET_STRING(IDS_FILE_BROWSER, VOLUME_LABEL); |
1403 SET_STRING(IDS_FILE_BROWSER, READ_ONLY); | 1426 SET_STRING(IDS_FILE_BROWSER, READ_ONLY); |
1404 | 1427 |
1405 SET_STRING(IDS_FILE_BROWSER, ARCHIVE_MOUNT_FAILED); | 1428 SET_STRING(IDS_FILE_BROWSER, ARCHIVE_MOUNT_FAILED); |
1406 SET_STRING(IDS_FILE_BROWSER, MOUNT_ARCHIVE); | 1429 SET_STRING(IDS_FILE_BROWSER, MOUNT_ARCHIVE); |
1407 SET_STRING(IDS_FILE_BROWSER, UNMOUNT_ARCHIVE); | 1430 SET_STRING(IDS_FILE_BROWSER, UNMOUNT_ARCHIVE); |
| 1431 SET_STRING(IDS_FILE_BROWSER, FORMAT_DEVICE); |
1408 | 1432 |
1409 SET_STRING(IDS_FILE_BROWSER, CONFIRM_OVERWRITE_FILE); | 1433 SET_STRING(IDS_FILE_BROWSER, CONFIRM_OVERWRITE_FILE); |
1410 SET_STRING(IDS_FILE_BROWSER, FILE_ALREADY_EXISTS); | 1434 SET_STRING(IDS_FILE_BROWSER, FILE_ALREADY_EXISTS); |
1411 SET_STRING(IDS_FILE_BROWSER, DIRECTORY_ALREADY_EXISTS); | 1435 SET_STRING(IDS_FILE_BROWSER, DIRECTORY_ALREADY_EXISTS); |
1412 SET_STRING(IDS_FILE_BROWSER, ERROR_RENAMING); | 1436 SET_STRING(IDS_FILE_BROWSER, ERROR_RENAMING); |
1413 SET_STRING(IDS_FILE_BROWSER, RENAME_PROMPT); | 1437 SET_STRING(IDS_FILE_BROWSER, RENAME_PROMPT); |
1414 SET_STRING(IDS_FILE_BROWSER, RENAME_BUTTON_LABEL); | 1438 SET_STRING(IDS_FILE_BROWSER, RENAME_BUTTON_LABEL); |
1415 | 1439 |
1416 SET_STRING(IDS_FILE_BROWSER, ERROR_DELETING); | 1440 SET_STRING(IDS_FILE_BROWSER, ERROR_DELETING); |
1417 SET_STRING(IDS_FILE_BROWSER, DELETE_BUTTON_LABEL); | 1441 SET_STRING(IDS_FILE_BROWSER, DELETE_BUTTON_LABEL); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1462 SET_STRING(IDS_FILE_BROWSER, NOTHING_SELECTED); | 1486 SET_STRING(IDS_FILE_BROWSER, NOTHING_SELECTED); |
1463 SET_STRING(IDS_FILE_BROWSER, ONE_FILE_SELECTED); | 1487 SET_STRING(IDS_FILE_BROWSER, ONE_FILE_SELECTED); |
1464 SET_STRING(IDS_FILE_BROWSER, ONE_DIRECTORY_SELECTED); | 1488 SET_STRING(IDS_FILE_BROWSER, ONE_DIRECTORY_SELECTED); |
1465 SET_STRING(IDS_FILE_BROWSER, MANY_FILES_SELECTED); | 1489 SET_STRING(IDS_FILE_BROWSER, MANY_FILES_SELECTED); |
1466 SET_STRING(IDS_FILE_BROWSER, MANY_DIRECTORIES_SELECTED); | 1490 SET_STRING(IDS_FILE_BROWSER, MANY_DIRECTORIES_SELECTED); |
1467 SET_STRING(IDS_FILE_BROWSER, MANY_ENTRIES_SELECTED); | 1491 SET_STRING(IDS_FILE_BROWSER, MANY_ENTRIES_SELECTED); |
1468 | 1492 |
1469 SET_STRING(IDS_FILE_BROWSER, PLAYBACK_ERROR); | 1493 SET_STRING(IDS_FILE_BROWSER, PLAYBACK_ERROR); |
1470 | 1494 |
1471 // MP3 metadata extractor plugin | 1495 // MP3 metadata extractor plugin |
1472 SET_STRING(IDS_FILE_BROWSER, ID3_ALBUM); // TALB | 1496 SET_STRING(IDS_FILE_BROWSER, ID3_ALBUM); // TALB |
1473 SET_STRING(IDS_FILE_BROWSER, ID3_BPM); // TBPM | 1497 SET_STRING(IDS_FILE_BROWSER, ID3_BPM); // TBPM |
1474 SET_STRING(IDS_FILE_BROWSER, ID3_COMPOSER); // TCOM | 1498 SET_STRING(IDS_FILE_BROWSER, ID3_COMPOSER); // TCOM |
1475 SET_STRING(IDS_FILE_BROWSER, ID3_COPYRIGHT_MESSAGE); // TCOP | 1499 SET_STRING(IDS_FILE_BROWSER, ID3_COPYRIGHT_MESSAGE); // TCOP |
1476 SET_STRING(IDS_FILE_BROWSER, ID3_DATE); // TDAT | 1500 SET_STRING(IDS_FILE_BROWSER, ID3_DATE); // TDAT |
1477 SET_STRING(IDS_FILE_BROWSER, ID3_PLAYLIST_DELAY); // TDLY | 1501 SET_STRING(IDS_FILE_BROWSER, ID3_PLAYLIST_DELAY); // TDLY |
1478 SET_STRING(IDS_FILE_BROWSER, ID3_ENCODED_BY); // TENC | 1502 SET_STRING(IDS_FILE_BROWSER, ID3_ENCODED_BY); // TENC |
1479 SET_STRING(IDS_FILE_BROWSER, ID3_LYRICIST); // TEXT | 1503 SET_STRING(IDS_FILE_BROWSER, ID3_LYRICIST); // TEXT |
1480 SET_STRING(IDS_FILE_BROWSER, ID3_FILE_TYPE); // TFLT | 1504 SET_STRING(IDS_FILE_BROWSER, ID3_FILE_TYPE); // TFLT |
1481 SET_STRING(IDS_FILE_BROWSER, ID3_TIME); // TIME | 1505 SET_STRING(IDS_FILE_BROWSER, ID3_TIME); // TIME |
1482 SET_STRING(IDS_FILE_BROWSER, ID3_TITLE); // TIT2 | 1506 SET_STRING(IDS_FILE_BROWSER, ID3_TITLE); // TIT2 |
1483 SET_STRING(IDS_FILE_BROWSER, ID3_LENGTH); // TLEN | 1507 SET_STRING(IDS_FILE_BROWSER, ID3_LENGTH); // TLEN |
1484 SET_STRING(IDS_FILE_BROWSER, ID3_FILE_OWNER); // TOWN | 1508 SET_STRING(IDS_FILE_BROWSER, ID3_FILE_OWNER); // TOWN |
1485 SET_STRING(IDS_FILE_BROWSER, ID3_LEAD_PERFORMER); // TPE1 | 1509 SET_STRING(IDS_FILE_BROWSER, ID3_LEAD_PERFORMER); // TPE1 |
1486 SET_STRING(IDS_FILE_BROWSER, ID3_BAND); // TPE2 | 1510 SET_STRING(IDS_FILE_BROWSER, ID3_BAND); // TPE2 |
1487 SET_STRING(IDS_FILE_BROWSER, ID3_TRACK_NUMBER); // TRCK | 1511 SET_STRING(IDS_FILE_BROWSER, ID3_TRACK_NUMBER); // TRCK |
1488 SET_STRING(IDS_FILE_BROWSER, ID3_YEAR); // TYER | 1512 SET_STRING(IDS_FILE_BROWSER, ID3_YEAR); // TYER |
1489 SET_STRING(IDS_FILE_BROWSER, ID3_COPYRIGHT); // WCOP | 1513 SET_STRING(IDS_FILE_BROWSER, ID3_COPYRIGHT); // WCOP |
1490 SET_STRING(IDS_FILE_BROWSER, ID3_OFFICIAL_AUDIO_FILE_WEBPAGE); // WOAF | 1514 SET_STRING(IDS_FILE_BROWSER, ID3_OFFICIAL_AUDIO_FILE_WEBPAGE); // WOAF |
1491 SET_STRING(IDS_FILE_BROWSER, ID3_OFFICIAL_ARTIST); // WOAR | 1515 SET_STRING(IDS_FILE_BROWSER, ID3_OFFICIAL_ARTIST); // WOAR |
1492 SET_STRING(IDS_FILE_BROWSER, ID3_OFFICIAL_AUDIO_SOURCE_WEBPAGE); // WOAS | 1516 SET_STRING(IDS_FILE_BROWSER, ID3_OFFICIAL_AUDIO_SOURCE_WEBPAGE); // WOAS |
1493 SET_STRING(IDS_FILE_BROWSER, ID3_PUBLISHERS_OFFICIAL_WEBPAGE); // WPUB | 1517 SET_STRING(IDS_FILE_BROWSER, ID3_PUBLISHERS_OFFICIAL_WEBPAGE); // WPUB |
1494 SET_STRING(IDS_FILE_BROWSER, ID3_USER_DEFINED_URL_LINK_FRAME); // WXXX | 1518 SET_STRING(IDS_FILE_BROWSER, ID3_USER_DEFINED_URL_LINK_FRAME); // WXXX |
1495 | 1519 |
1496 SET_STRING(IDS_FILEBROWSER, ENQUEUE); | 1520 SET_STRING(IDS_FILEBROWSER, ENQUEUE); |
1497 #undef SET_STRING | 1521 #undef SET_STRING |
1498 | 1522 |
1499 // TODO(serya): Create a new string in .grd file for this one in M13. | 1523 // TODO(serya): Create a new string in .grd file for this one in M13. |
1500 dict->SetString("PREVIEW_IMAGE", | 1524 dict->SetString("PREVIEW_IMAGE", |
1501 l10n_util::GetStringUTF16(IDS_CERT_MANAGER_VIEW_CERT_BUTTON)); | 1525 l10n_util::GetStringUTF16(IDS_CERT_MANAGER_VIEW_CERT_BUTTON)); |
1502 dict->SetString("PLAY_MEDIA", | 1526 dict->SetString("PLAY_MEDIA", |
1503 l10n_util::GetStringUTF16(IDS_CONTENT_CONTEXT_PLAY)); | 1527 l10n_util::GetStringUTF16(IDS_CONTENT_CONTEXT_PLAY)); |
1504 | 1528 |
1505 return true; | 1529 return true; |
1506 } | 1530 } |
OLD | NEW |