| Index: chrome/browser/chromeos/extensions/file_manager/file_browser_private_api.cc
|
| diff --git a/chrome/browser/chromeos/extensions/file_manager/file_browser_private_api.cc b/chrome/browser/chromeos/extensions/file_manager/file_browser_private_api.cc
|
| index 9f2fcca250354357d5f27e208a3c8cc4fc18095d..181db6eade2f36f700fe7450751ce22a100267f0 100644
|
| --- a/chrome/browser/chromeos/extensions/file_manager/file_browser_private_api.cc
|
| +++ b/chrome/browser/chromeos/extensions/file_manager/file_browser_private_api.cc
|
| @@ -363,9 +363,14 @@ void LogDefaultTask(const std::set<std::string>& mime_types,
|
| void DoNothingWithBool(bool /* success */) {
|
| }
|
|
|
| -void FillDriveFilePropertiesValue(
|
| +void FillDriveEntryPropertiesValue(
|
| const drive::DriveEntryProto& entry_proto,
|
| DictionaryValue* property_dict) {
|
| + property_dict->SetBoolean("sharedWithMe", entry_proto.shared_with_me());
|
| +
|
| + if (!entry_proto.has_file_specific_info())
|
| + return;
|
| +
|
| const drive::DriveFileSpecificInfo& file_specific_info =
|
| entry_proto.file_specific_info();
|
|
|
| @@ -565,7 +570,7 @@ FileBrowserPrivateAPI::FileBrowserPrivateAPI(Profile* profile)
|
| registry->RegisterFunction<GetSizeStatsFunction>();
|
| registry->RegisterFunction<FormatDeviceFunction>();
|
| registry->RegisterFunction<ViewFilesFunction>();
|
| - registry->RegisterFunction<GetDriveFilePropertiesFunction>();
|
| + registry->RegisterFunction<GetDriveEntryPropertiesFunction>();
|
| registry->RegisterFunction<PinDriveFileFunction>();
|
| registry->RegisterFunction<GetFileLocationsFunction>();
|
| registry->RegisterFunction<GetDriveFilesFunction>();
|
| @@ -2305,13 +2310,13 @@ bool FileDialogStringsFunction::RunImpl() {
|
| return true;
|
| }
|
|
|
| -GetDriveFilePropertiesFunction::GetDriveFilePropertiesFunction() {
|
| +GetDriveEntryPropertiesFunction::GetDriveEntryPropertiesFunction() {
|
| }
|
|
|
| -GetDriveFilePropertiesFunction::~GetDriveFilePropertiesFunction() {
|
| +GetDriveEntryPropertiesFunction::~GetDriveEntryPropertiesFunction() {
|
| }
|
|
|
| -bool GetDriveFilePropertiesFunction::RunImpl() {
|
| +bool GetDriveEntryPropertiesFunction::RunImpl() {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
|
|
| std::string file_url_str;
|
| @@ -2335,28 +2340,22 @@ bool GetDriveFilePropertiesFunction::RunImpl() {
|
|
|
| system_service->file_system()->GetEntryInfoByPath(
|
| file_path_,
|
| - base::Bind(&GetDriveFilePropertiesFunction::OnGetFileInfo, this));
|
| + base::Bind(&GetDriveEntryPropertiesFunction::OnGetFileInfo, this));
|
| return true;
|
| }
|
|
|
| -void GetDriveFilePropertiesFunction::OnGetFileInfo(
|
| +void GetDriveEntryPropertiesFunction::OnGetFileInfo(
|
| drive::FileError error,
|
| scoped_ptr<drive::DriveEntryProto> entry) {
|
| DCHECK(properties_);
|
|
|
| - if (entry.get() && !entry->has_file_specific_info())
|
| - error = drive::FILE_ERROR_NOT_FOUND;
|
| -
|
| if (error != drive::FILE_ERROR_OK) {
|
| CompleteGetFileProperties(error);
|
| return;
|
| }
|
| DCHECK(entry);
|
|
|
| - const drive::DriveFileSpecificInfo& file_specific_info =
|
| - entry->file_specific_info();
|
| -
|
| - FillDriveFilePropertiesValue(*entry, properties_.get());
|
| + FillDriveEntryPropertiesValue(*entry, properties_.get());
|
|
|
| drive::DriveSystemService* system_service =
|
| drive::DriveSystemServiceFactory::GetForProfile(profile_);
|
| @@ -2366,6 +2365,16 @@ void GetDriveFilePropertiesFunction::OnGetFileInfo(
|
| return;
|
| }
|
|
|
| + // The properties meaningful for directories are already filled in
|
| + // FillDriveEntryPropertiesValue().
|
| + if (entry.get() && !entry->has_file_specific_info()) {
|
| + CompleteGetFileProperties(error);
|
| + return;
|
| + }
|
| +
|
| + const drive::DriveFileSpecificInfo& file_specific_info =
|
| + entry->file_specific_info();
|
| +
|
| // Get drive WebApps that can accept this file.
|
| ScopedVector<drive::DriveWebAppInfo> web_apps;
|
| system_service->webapps_registry()->GetWebAppsForFile(
|
| @@ -2405,10 +2414,10 @@ void GetDriveFilePropertiesFunction::OnGetFileInfo(
|
| system_service->file_system()->GetCacheEntryByResourceId(
|
| entry->resource_id(),
|
| file_specific_info.file_md5(),
|
| - base::Bind(&GetDriveFilePropertiesFunction::CacheStateReceived, this));
|
| + base::Bind(&GetDriveEntryPropertiesFunction::CacheStateReceived, this));
|
| }
|
|
|
| -void GetDriveFilePropertiesFunction::CacheStateReceived(
|
| +void GetDriveEntryPropertiesFunction::CacheStateReceived(
|
| bool /* success */,
|
| const drive::FileCacheEntry& cache_entry) {
|
| // In case of an error (i.e. success is false), cache_entry.is_*() all
|
| @@ -2420,7 +2429,7 @@ void GetDriveFilePropertiesFunction::CacheStateReceived(
|
| CompleteGetFileProperties(drive::FILE_ERROR_OK);
|
| }
|
|
|
| -void GetDriveFilePropertiesFunction::CompleteGetFileProperties(
|
| +void GetDriveEntryPropertiesFunction::CompleteGetFileProperties(
|
| drive::FileError error) {
|
| if (error != drive::FILE_ERROR_OK)
|
| properties_->SetInteger("errorCode", error);
|
|
|