Index: chrome/browser/chromeos/extensions/file_manager/file_tasks.h |
diff --git a/chrome/browser/chromeos/extensions/file_manager/file_tasks.h b/chrome/browser/chromeos/extensions/file_manager/file_tasks.h |
index 37c04f084fbd1b766874e2239d7c020afb006681..e914ad4ea69058f9df0145c982c5209b5492cf1d 100644 |
--- a/chrome/browser/chromeos/extensions/file_manager/file_tasks.h |
+++ b/chrome/browser/chromeos/extensions/file_manager/file_tasks.h |
@@ -117,8 +117,8 @@ |
#include "base/basictypes.h" |
#include "base/callback_forward.h" |
#include "chrome/browser/extensions/api/file_handlers/app_file_handler_util.h" |
+#include "url/gurl.h" |
-class GURL; |
class PrefService; |
class Profile; |
@@ -159,6 +159,44 @@ struct TaskDescriptor { |
std::string action_id; |
}; |
+// Describes a task with extra information such as icon URL. |
+class FullTaskDescriptor { |
+ public: |
+ FullTaskDescriptor(const TaskDescriptor& task_descriptor, |
+ const std::string& task_title, |
+ const GURL& icon_url, |
+ bool is_default); |
+ // The icon URL for the task (ex. app icon) |
+ const GURL& icon_url() const { return icon_url_; } |
+ |
+ // True if this task is set as default. |
+ bool is_default() const { return is_default_; } |
+ |
+ // The title of the task. |
+ const std::string& task_title() { return task_title_; } |
+ |
+ // Returns a DictionaryValue representation, which looks like: |
+ // |
+ // { |
+ // "driveApp": true, |
+ // "iconUrl": "<app_icon_url>", |
+ // "isDefault": false, |
+ // "taskId": "<drive_app_id>|drive|open-with", |
+ // "title": "Drive App Name (ex. Pixlr Editor)" |
+ // }, |
+ // |
+ // "iconUrl" is omitted if icon_url_ is empty. |
+ // |
+ // This representation will be used to send task info to the JavaScript. |
+ scoped_ptr<base::DictionaryValue> AsDictionaryValue() const; |
+ |
+ private: |
+ TaskDescriptor task_descriptor_; |
+ std::string task_title_; |
+ GURL icon_url_; |
+ bool is_default_; |
+}; |
+ |
// Update the default file handler for the given sets of suffixes and MIME |
// types. |
void UpdateDefaultTask(PrefService* pref_service, |
@@ -179,7 +217,7 @@ std::string GetDefaultTaskIdFromPrefs(const PrefService& pref_service, |
// |
// |app_id| is either of Chrome Extension/App ID or Drive App ID. |
// |action_id| is a free-form string ID for the action. |
-std::string MakeTaskID(const std::string& extension_id, |
+std::string MakeTaskID(const std::string& app_id, |
TaskType task_type, |
const std::string& action_id); |
@@ -188,6 +226,9 @@ std::string MakeTaskID(const std::string& extension_id, |
// could add any actions that the drive app supports. |
std::string MakeDriveAppTaskId(const std::string& app_id); |
+// Converts |task_descriptor| to a task ID. |
+std::string TaskDescriptorToId(const TaskDescriptor& task_descriptor); |
+ |
// Parses the task ID and extracts app ID, task type, and action ID into |
// |task|. On failure, returns false, and the contents of |task| are |
// undefined. |
@@ -252,7 +293,7 @@ void FindDefaultDriveTasks(const PrefService& pref_service, |
// |default_already_set| is set to true. |
void CreateDriveTasks(const TaskInfoMap& task_info_map, |
const std::set<std::string>& default_tasks, |
- ListValue* result_list, |
+ std::vector<FullTaskDescriptor>* result_list, |
bool* default_already_set); |
// Finds the drive app tasks that can be used with the given files, and |
@@ -266,7 +307,7 @@ void CreateDriveTasks(const TaskInfoMap& task_info_map, |
// "driveApp" field in |result_list| will be set to "true". |
void FindDriveAppTasks(Profile* profile, |
const PathAndMimeTypeSet& path_mime_set, |
- ListValue* result_list, |
+ std::vector<FullTaskDescriptor>* result_list, |
bool* default_already_set); |
// Finds the file handler tasks (apps declaring "file_handlers" in |
@@ -275,7 +316,7 @@ void FindDriveAppTasks(Profile* profile, |
// |default_already_set| |
void FindFileHandlerTasks(Profile* profile, |
const PathAndMimeTypeSet& path_mime_set, |
- ListValue* result_list, |
+ std::vector<FullTaskDescriptor>* result_list, |
bool* default_already_set); |
// Finds the file browser handler tasks (app/extensions declaring |
@@ -286,7 +327,7 @@ void FindFileBrowserHandlerTasks( |
Profile* profile, |
const std::vector<GURL>& file_urls, |
const std::vector<base::FilePath>& file_paths, |
- ListValue* result_list, |
+ std::vector<FullTaskDescriptor>* result_list, |
bool* default_already_set); |
// Finds all types (drive, file handlers, file browser handlers) of |
@@ -296,7 +337,7 @@ void FindAllTypesOfTasks( |
const PathAndMimeTypeSet& path_mime_set, |
const std::vector<GURL>& file_urls, |
const std::vector<base::FilePath>& file_paths, |
- ListValue* result_list); |
+ std::vector<FullTaskDescriptor>* result_list); |
} // namespace file_tasks |
} // namespace file_manager |