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

Unified Diff: chrome/browser/chromeos/extensions/file_handler_util.h

Issue 10834383: Chrome OS "open with" picker allowing Web Intents (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: some fixes, haven't approached JS yet Created 8 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/extensions/file_handler_util.h
diff --git a/chrome/browser/chromeos/extensions/file_handler_util.h b/chrome/browser/chromeos/extensions/file_handler_util.h
index 8a0be475272525f7521d973a3cc2abdd2f916ed1..54abe7c5e0b751dd490c2aa3592e82ef620ba235 100644
--- a/chrome/browser/chromeos/extensions/file_handler_util.h
+++ b/chrome/browser/chromeos/extensions/file_handler_util.h
@@ -17,8 +17,22 @@ class Browser;
class GURL;
class Profile;
+namespace extensions {
+class Extension;
+} // namespace extensions
+
namespace file_handler_util {
+// Specifies the task type for a task id that represents some file action, Drive
+// action, or Web Intent action.
+enum TaskType {
+ TASK_FILE = 1,
+ TASK_DRIVE,
+ TASK_WEBINTENT
+};
+
+void UpdateFileHandlerUsageStats(Profile* profile, const std::string& task_id);
+
// Update the default file handler for the given sets of suffixes and MIME
// types.
void UpdateDefaultTask(Profile* profile,
@@ -39,27 +53,17 @@ int GetReadWritePermissions();
// Gets read-only file access permission flags.
int GetReadOnlyPermissions();
-// Generates file task id for the file action specified by the extension.
+// Generates task id for the action specified by the extension.
std::string MakeTaskID(const std::string& extension_id,
+ TaskType task_type,
const std::string& action_id);
-// Make a task id specific to drive apps instead of extensions.
-std::string MakeDriveTaskID(const std::string& app_id,
- const std::string& action_id);
-
-// Returns the |target_id| and |action_id| of a drive app or extension, given
-// the drive |task_id| created by MakeDriveTaskID. If the |task_id| is a drive
-// task_id then it will return true. If not, or if parsing fails, will return
-// false and not set |app_id| or |action_id|.
-bool CrackDriveTaskID(const std::string& task_id,
- std::string* app_id,
- std::string* action_id);
-
-// Extracts action and extension id bound to the file task. Either
+// Extracts action, type and extension id bound to the file task. Either
// |target_extension_id| or |action_id| are allowed to be NULL if caller isn't
// interested in those values. Returns false on failure to parse.
bool CrackTaskID(const std::string& task_id,
std::string* target_extension_id,
+ TaskType* task_type,
std::string* action_id);
// This generates a list of default tasks (tasks set as default by the user in
@@ -88,13 +92,11 @@ typedef base::Callback<void(bool)> FileTaskFinishedCallback;
// Helper class for executing file browser file action.
class FileTaskExecutor : public base::RefCountedThreadSafe<FileTaskExecutor> {
public:
- static const char kDriveTaskExtensionPrefix[];
- static const size_t kDriveTaskExtensionPrefixLength;
-
// Creates the appropriate FileTaskExecutor for the given |extension_id|.
static FileTaskExecutor* Create(Profile* profile,
const GURL source_url,
const std::string& extension_id,
+ TaskType task_type,
const std::string& action_id);
// Same as ExecuteAndNotify, but no notification is performed.
@@ -110,7 +112,7 @@ class FileTaskExecutor : public base::RefCountedThreadSafe<FileTaskExecutor> {
const FileTaskFinishedCallback& done) = 0;
protected:
- explicit FileTaskExecutor(Profile* profile);
+ explicit FileTaskExecutor(Profile* profile, const std::string& extension_id);
virtual ~FileTaskExecutor();
// Returns the profile that this task was created with.
@@ -118,10 +120,18 @@ class FileTaskExecutor : public base::RefCountedThreadSafe<FileTaskExecutor> {
// Returns a browser to use for the current browser.
Browser* GetBrowser() const;
+
+ // Returns the extension for this profile.
+ const extensions::Extension* GetExtension();
+
+ // Returns the extension ID set for this FileTaskExecutor.
+ const std::string& extension_id() { return extension_id_; }
+
private:
friend class base::RefCountedThreadSafe<FileTaskExecutor>;
Profile* profile_;
+ const std::string extension_id_;
};
} // namespace file_handler_util

Powered by Google App Engine
This is Rietveld 408576698