| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_browser_private_api.h" | 5 #include "chrome/browser/chromeos/extensions/file_browser_private_api.h" |
| 6 | 6 |
| 7 #include <sys/statvfs.h> | 7 #include <sys/statvfs.h> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/base64.h" | 10 #include "base/base64.h" |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 #include "chrome/browser/ui/webui/extensions/extension_icon_source.h" | 42 #include "chrome/browser/ui/webui/extensions/extension_icon_source.h" |
| 43 #include "chrome/common/extensions/extension.h" | 43 #include "chrome/common/extensions/extension.h" |
| 44 #include "chrome/common/extensions/extension_constants.h" | 44 #include "chrome/common/extensions/extension_constants.h" |
| 45 #include "chrome/common/extensions/extension_icon_set.h" | 45 #include "chrome/common/extensions/extension_icon_set.h" |
| 46 #include "chrome/common/extensions/file_browser_handler.h" | 46 #include "chrome/common/extensions/file_browser_handler.h" |
| 47 #include "chrome/common/pref_names.h" | 47 #include "chrome/common/pref_names.h" |
| 48 #include "chromeos/disks/disk_mount_manager.h" | 48 #include "chromeos/disks/disk_mount_manager.h" |
| 49 #include "content/public/browser/child_process_security_policy.h" | 49 #include "content/public/browser/child_process_security_policy.h" |
| 50 #include "content/public/browser/render_process_host.h" | 50 #include "content/public/browser/render_process_host.h" |
| 51 #include "content/public/browser/render_view_host.h" | 51 #include "content/public/browser/render_view_host.h" |
| 52 #include "content/public/browser/storage_partition.h" |
| 52 #include "googleurl/src/gurl.h" | 53 #include "googleurl/src/gurl.h" |
| 53 #include "grit/generated_resources.h" | 54 #include "grit/generated_resources.h" |
| 54 #include "grit/platform_locale_settings.h" | 55 #include "grit/platform_locale_settings.h" |
| 55 #include "net/base/escape.h" | 56 #include "net/base/escape.h" |
| 56 #include "ui/base/dialogs/selected_file_info.h" | 57 #include "ui/base/dialogs/selected_file_info.h" |
| 57 #include "ui/base/l10n/l10n_util.h" | 58 #include "ui/base/l10n/l10n_util.h" |
| 58 #include "webkit/chromeos/fileapi/cros_mount_point_provider.h" | 59 #include "webkit/chromeos/fileapi/cros_mount_point_provider.h" |
| 59 #include "webkit/fileapi/file_system_context.h" | 60 #include "webkit/fileapi/file_system_context.h" |
| 60 #include "webkit/fileapi/file_system_file_util.h" | 61 #include "webkit/fileapi/file_system_file_util.h" |
| 61 #include "webkit/fileapi/file_system_operation_context.h" | 62 #include "webkit/fileapi/file_system_operation_context.h" |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 168 int permissions) { | 169 int permissions) { |
| 169 ChildProcessSecurityPolicy::GetInstance()->GrantPermissionsForFile( | 170 ChildProcessSecurityPolicy::GetInstance()->GrantPermissionsForFile( |
| 170 host->GetProcess()->GetID(), path, permissions); | 171 host->GetProcess()->GetID(), path, permissions); |
| 171 } | 172 } |
| 172 | 173 |
| 173 void AddDriveMountPoint( | 174 void AddDriveMountPoint( |
| 174 Profile* profile, | 175 Profile* profile, |
| 175 const std::string& extension_id, | 176 const std::string& extension_id, |
| 176 content::RenderViewHost* render_view_host) { | 177 content::RenderViewHost* render_view_host) { |
| 177 fileapi::ExternalFileSystemMountPointProvider* provider = | 178 fileapi::ExternalFileSystemMountPointProvider* provider = |
| 178 BrowserContext::GetFileSystemContext(profile)->external_provider(); | 179 BrowserContext::GetDefaultStoragePartition(profile)-> |
| 180 GetFileSystemContext()->external_provider(); |
| 179 if (!provider) | 181 if (!provider) |
| 180 return; | 182 return; |
| 181 | 183 |
| 182 const FilePath mount_point = gdata::util::GetDriveMountPointPath(); | 184 const FilePath mount_point = gdata::util::GetDriveMountPointPath(); |
| 183 if (!render_view_host || !render_view_host->GetProcess()) | 185 if (!render_view_host || !render_view_host->GetProcess()) |
| 184 return; | 186 return; |
| 185 | 187 |
| 186 // Grant R/W permissions to drive 'folder'. File API layer still | 188 // Grant R/W permissions to drive 'folder'. File API layer still |
| 187 // expects this to be satisfied. | 189 // expects this to be satisfied. |
| 188 GrantFilePermissionsToHost(render_view_host, | 190 GrantFilePermissionsToHost(render_view_host, |
| (...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 446 file_system_context, | 448 file_system_context, |
| 447 child_id, | 449 child_id, |
| 448 GetExtension())); | 450 GetExtension())); |
| 449 } | 451 } |
| 450 | 452 |
| 451 bool RequestLocalFileSystemFunction::RunImpl() { | 453 bool RequestLocalFileSystemFunction::RunImpl() { |
| 452 if (!dispatcher() || !render_view_host() || !render_view_host()->GetProcess()) | 454 if (!dispatcher() || !render_view_host() || !render_view_host()->GetProcess()) |
| 453 return false; | 455 return false; |
| 454 | 456 |
| 455 scoped_refptr<fileapi::FileSystemContext> file_system_context = | 457 scoped_refptr<fileapi::FileSystemContext> file_system_context = |
| 456 BrowserContext::GetFileSystemContext(profile_); | 458 BrowserContext::GetDefaultStoragePartition(profile_)-> |
| 459 GetFileSystemContext(); |
| 457 BrowserThread::PostTask( | 460 BrowserThread::PostTask( |
| 458 BrowserThread::FILE, FROM_HERE, | 461 BrowserThread::FILE, FROM_HERE, |
| 459 base::Bind( | 462 base::Bind( |
| 460 &RequestLocalFileSystemFunction::RequestOnFileThread, | 463 &RequestLocalFileSystemFunction::RequestOnFileThread, |
| 461 this, | 464 this, |
| 462 file_system_context, | 465 file_system_context, |
| 463 source_url_, | 466 source_url_, |
| 464 render_view_host()->GetProcess()->GetID())); | 467 render_view_host()->GetProcess()->GetID())); |
| 465 // Will finish asynchronously. | 468 // Will finish asynchronously. |
| 466 return true; | 469 return true; |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 508 if (!render_view_host() || !render_view_host()->GetProcess()) | 511 if (!render_view_host() || !render_view_host()->GetProcess()) |
| 509 return false; | 512 return false; |
| 510 | 513 |
| 511 // First param is url of a file to watch. | 514 // First param is url of a file to watch. |
| 512 std::string url; | 515 std::string url; |
| 513 if (!args_->GetString(0, &url) || url.empty()) | 516 if (!args_->GetString(0, &url) || url.empty()) |
| 514 return false; | 517 return false; |
| 515 | 518 |
| 516 GURL file_watch_url(url); | 519 GURL file_watch_url(url); |
| 517 scoped_refptr<fileapi::FileSystemContext> file_system_context = | 520 scoped_refptr<fileapi::FileSystemContext> file_system_context = |
| 518 BrowserContext::GetFileSystemContext(profile_); | 521 BrowserContext::GetDefaultStoragePartition(profile_)-> |
| 522 GetFileSystemContext(); |
| 519 BrowserThread::PostTask( | 523 BrowserThread::PostTask( |
| 520 BrowserThread::FILE, FROM_HERE, | 524 BrowserThread::FILE, FROM_HERE, |
| 521 base::Bind( | 525 base::Bind( |
| 522 &FileWatchBrowserFunctionBase::RunFileWatchOperationOnFileThread, | 526 &FileWatchBrowserFunctionBase::RunFileWatchOperationOnFileThread, |
| 523 this, | 527 this, |
| 524 file_system_context, | 528 file_system_context, |
| 525 FileBrowserEventRouterFactory::GetForProfile(profile_), | 529 FileBrowserEventRouterFactory::GetForProfile(profile_), |
| 526 file_watch_url, | 530 file_watch_url, |
| 527 extension_id())); | 531 extension_id())); |
| 528 | 532 |
| (...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 964 LOG(WARNING) << "No associated tab contents"; | 968 LOG(WARNING) << "No associated tab contents"; |
| 965 return 0; | 969 return 0; |
| 966 } | 970 } |
| 967 return ExtensionTabUtil::GetTabId(web_contents); | 971 return ExtensionTabUtil::GetTabId(web_contents); |
| 968 } | 972 } |
| 969 | 973 |
| 970 void FileBrowserFunction::GetLocalPathsOnFileThreadAndRunCallbackOnUIThread( | 974 void FileBrowserFunction::GetLocalPathsOnFileThreadAndRunCallbackOnUIThread( |
| 971 const UrlList& file_urls, | 975 const UrlList& file_urls, |
| 972 GetLocalPathsCallback callback) { | 976 GetLocalPathsCallback callback) { |
| 973 scoped_refptr<fileapi::FileSystemContext> file_system_context = | 977 scoped_refptr<fileapi::FileSystemContext> file_system_context = |
| 974 BrowserContext::GetFileSystemContext(profile_); | 978 BrowserContext::GetDefaultStoragePartition(profile())-> |
| 979 GetFileSystemContext(); |
| 975 BrowserThread::PostTask( | 980 BrowserThread::PostTask( |
| 976 BrowserThread::FILE, FROM_HERE, | 981 BrowserThread::FILE, FROM_HERE, |
| 977 base::Bind( | 982 base::Bind( |
| 978 &FileBrowserFunction::GetLocalPathsOnFileThread, | 983 &FileBrowserFunction::GetLocalPathsOnFileThread, |
| 979 this, | 984 this, |
| 980 file_system_context, file_urls, callback)); | 985 file_system_context, file_urls, callback)); |
| 981 } | 986 } |
| 982 | 987 |
| 983 // GetFileSystemRootPathOnFileThread can only be called from the file thread, | 988 // GetFileSystemRootPathOnFileThread can only be called from the file thread, |
| 984 // so here we are. This function takes a vector of virtual paths, converts | 989 // so here we are. This function takes a vector of virtual paths, converts |
| (...skipping 1511 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2496 | 2501 |
| 2497 SearchDriveFunction::~SearchDriveFunction() {} | 2502 SearchDriveFunction::~SearchDriveFunction() {} |
| 2498 | 2503 |
| 2499 bool SearchDriveFunction::RunImpl() { | 2504 bool SearchDriveFunction::RunImpl() { |
| 2500 if (!args_->GetString(0, &query_)) | 2505 if (!args_->GetString(0, &query_)) |
| 2501 return false; | 2506 return false; |
| 2502 | 2507 |
| 2503 if (!args_->GetString(1, &next_feed_)) | 2508 if (!args_->GetString(1, &next_feed_)) |
| 2504 return false; | 2509 return false; |
| 2505 | 2510 |
| 2506 BrowserContext::GetFileSystemContext(profile())->OpenFileSystem( | 2511 BrowserContext::GetDefaultStoragePartition(profile())-> |
| 2507 source_url_.GetOrigin(), fileapi::kFileSystemTypeExternal, false, | 2512 GetFileSystemContext()->OpenFileSystem( |
| 2508 base::Bind(&SearchDriveFunction::OnFileSystemOpened, this)); | 2513 source_url_.GetOrigin(), fileapi::kFileSystemTypeExternal, false, |
| 2514 base::Bind(&SearchDriveFunction::OnFileSystemOpened, this)); |
| 2509 return true; | 2515 return true; |
| 2510 } | 2516 } |
| 2511 | 2517 |
| 2512 void SearchDriveFunction::OnFileSystemOpened( | 2518 void SearchDriveFunction::OnFileSystemOpened( |
| 2513 base::PlatformFileError result, | 2519 base::PlatformFileError result, |
| 2514 const std::string& file_system_name, | 2520 const std::string& file_system_name, |
| 2515 const GURL& file_system_url) { | 2521 const GURL& file_system_url) { |
| 2516 if (result != base::PLATFORM_FILE_OK) { | 2522 if (result != base::PLATFORM_FILE_OK) { |
| 2517 SendResponse(false); | 2523 SendResponse(false); |
| 2518 return; | 2524 return; |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2612 gdata::DriveSystemService* system_service = | 2618 gdata::DriveSystemService* system_service = |
| 2613 gdata::DriveSystemServiceFactory::GetForProfile(profile_); | 2619 gdata::DriveSystemServiceFactory::GetForProfile(profile_); |
| 2614 if (!system_service || !system_service->file_system()) | 2620 if (!system_service || !system_service->file_system()) |
| 2615 return false; | 2621 return false; |
| 2616 | 2622 |
| 2617 FilePath directory_path = GetVirtualPathFromURL(GURL(file_url_as_string)); | 2623 FilePath directory_path = GetVirtualPathFromURL(GURL(file_url_as_string)); |
| 2618 system_service->file_system()->RequestDirectoryRefresh(directory_path); | 2624 system_service->file_system()->RequestDirectoryRefresh(directory_path); |
| 2619 | 2625 |
| 2620 return true; | 2626 return true; |
| 2621 } | 2627 } |
| OLD | NEW |