Index: chrome/browser/chromeos/gdata/gdata_file_system_proxy.cc |
diff --git a/chrome/browser/chromeos/gdata/gdata_file_system_proxy.cc b/chrome/browser/chromeos/gdata/gdata_file_system_proxy.cc |
index 992a6949af1f697df5197f31738d41b1f575e97f..dae70803d683a4bd40f49b15079bbdeecdadaf45 100644 |
--- a/chrome/browser/chromeos/gdata/gdata_file_system_proxy.cc |
+++ b/chrome/browser/chromeos/gdata/gdata_file_system_proxy.cc |
@@ -13,8 +13,9 @@ |
#include "base/values.h" |
#include "content/public/browser/browser_thread.h" |
#include "chrome/browser/chromeos/gdata/gdata.pb.h" |
-#include "chrome/browser/chromeos/gdata/gdata_system_service.h" |
#include "chrome/browser/chromeos/gdata/gdata_file_system.h" |
+#include "chrome/browser/chromeos/gdata/gdata_system_service.h" |
+#include "chrome/browser/chromeos/gdata/gdata_util.h" |
#include "webkit/blob/shareable_file_reference.h" |
#include "webkit/fileapi/file_system_file_util_proxy.h" |
#include "webkit/fileapi/file_system_types.h" |
@@ -152,6 +153,20 @@ void GDataFileSystemProxy::ReadDirectory(const GURL& file_url, |
return; |
} |
+ // File paths with type GDATA_SEARH_PATH_QUERY are virtual path reserved for |
+ // displaying gdata content search results. They are formatted so their base |
+ // name equals to search query. So to get their contents, we have to kick off |
+ // content search. |
+ if (util::GetSearchPathStatus(file_path) == util::GDATA_SEARCH_PATH_QUERY) { |
+ file_system_->GetEntriesByQueryAsync( |
+ file_path.BaseName().value(), |
+ base::Bind(&GDataFileSystemProxy::OnReadDirectory, |
+ this, |
+ file_system_->hide_hosted_documents(), |
+ callback)); |
+ return; |
+ } |
+ |
file_system_->ReadDirectoryByPathAsync( |
file_path, |
base::Bind(&GDataFileSystemProxy::OnReadDirectory, |