Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(409)

Side by Side Diff: chrome/browser/extensions/extension_file_browser_private_api.cc

Issue 7583041: Adding a format device button to UI. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Style fixes Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698