| Index: chrome/browser/chromeos/file_manager/file_tasks.cc
|
| diff --git a/chrome/browser/chromeos/file_manager/file_tasks.cc b/chrome/browser/chromeos/file_manager/file_tasks.cc
|
| index e3484892a4828e73304728440854eeab0e211b7b..942d24b277775c032ac1a877034f565c2779da2c 100644
|
| --- a/chrome/browser/chromeos/file_manager/file_tasks.cc
|
| +++ b/chrome/browser/chromeos/file_manager/file_tasks.cc
|
| @@ -16,7 +16,6 @@
|
| #include "chrome/browser/chromeos/file_manager/file_browser_handlers.h"
|
| #include "chrome/browser/chromeos/file_manager/fileapi_util.h"
|
| #include "chrome/browser/chromeos/file_manager/open_util.h"
|
| -#include "chrome/browser/chromeos/fileapi/file_system_backend.h"
|
| #include "chrome/browser/drive/drive_api_util.h"
|
| #include "chrome/browser/drive/drive_app_registry.h"
|
| #include "chrome/browser/extensions/extension_tab_util.h"
|
| @@ -25,6 +24,7 @@
|
| #include "chrome/browser/ui/webui/extensions/extension_icon_source.h"
|
| #include "chrome/common/extensions/api/file_browser_handlers/file_browser_handler.h"
|
| #include "chrome/common/extensions/api/file_browser_private.h"
|
| +#include "chrome/common/extensions/extension_constants.h"
|
| #include "chrome/common/pref_names.h"
|
| #include "chromeos/chromeos_switches.h"
|
| #include "extensions/browser/extension_host.h"
|
| @@ -33,7 +33,6 @@
|
| #include "extensions/browser/extension_util.h"
|
| #include "extensions/common/constants.h"
|
| #include "extensions/common/extension_set.h"
|
| -#include "webkit/browser/fileapi/file_system_context.h"
|
| #include "webkit/browser/fileapi/file_system_url.h"
|
|
|
| using extensions::Extension;
|
| @@ -130,6 +129,29 @@ void ChooseSuitableGalleryHandler(std::vector<FullTaskDescriptor>* task_list) {
|
| }
|
| }
|
|
|
| +// Returns true if the given task is a handler by built-in apps like Files.app
|
| +// itself or QuickOffice etc. They are used as the initial default app.
|
| +bool IsFallbackFileHandler(const file_tasks::TaskDescriptor& task) {
|
| + if (task.task_type != file_tasks::TASK_TYPE_FILE_BROWSER_HANDLER &&
|
| + task.task_type != file_tasks::TASK_TYPE_FILE_HANDLER)
|
| + return false;
|
| +
|
| + const char* kBuiltInApps[] = {
|
| + kFileManagerAppId,
|
| + kVideoPlayerAppId,
|
| + kGalleryAppId,
|
| + extension_misc::kQuickOfficeComponentExtensionId,
|
| + extension_misc::kQuickOfficeInternalExtensionId,
|
| + extension_misc::kQuickOfficeExtensionId,
|
| + };
|
| +
|
| + for (size_t i = 0; i < arraysize(kBuiltInApps); ++i) {
|
| + if (task.app_id == kBuiltInApps[i])
|
| + return true;
|
| + }
|
| + return false;
|
| +}
|
| +
|
| } // namespace
|
|
|
| FullTaskDescriptor::FullTaskDescriptor(
|
| @@ -211,10 +233,6 @@ std::string MakeTaskID(const std::string& app_id,
|
| action_id.c_str());
|
| }
|
|
|
| -std::string MakeDriveAppTaskId(const std::string& app_id) {
|
| - return MakeTaskID(app_id, TASK_TYPE_DRIVE_APP, kDriveAppActionID);
|
| -}
|
| -
|
| std::string TaskDescriptorToId(const TaskDescriptor& task_descriptor) {
|
| return MakeTaskID(task_descriptor.app_id,
|
| task_descriptor.task_type,
|
| @@ -288,9 +306,8 @@ bool ExecuteFileTask(Profile* profile,
|
| done);
|
| } else if (task.task_type == TASK_TYPE_FILE_HANDLER) {
|
| std::vector<base::FilePath> paths;
|
| - for (size_t i = 0; i != file_urls.size(); ++i) {
|
| + for (size_t i = 0; i != file_urls.size(); ++i)
|
| paths.push_back(file_urls[i].path());
|
| - }
|
| apps::LaunchPlatformAppWithFileHandler(
|
| profile, extension, task.action_id, paths);
|
| if (!done.is_null())
|
| @@ -524,8 +541,7 @@ void ChooseAndSetDefaultTask(const PrefService& pref_service,
|
| for (size_t i = 0; i < tasks->size(); ++i) {
|
| FullTaskDescriptor* task = &tasks->at(i);
|
| DCHECK(!task->is_default());
|
| - if (file_browser_handlers::IsFallbackFileBrowserHandler(
|
| - task->task_descriptor())) {
|
| + if (IsFallbackFileHandler(task->task_descriptor())) {
|
| task->set_is_default(true);
|
| return;
|
| }
|
|
|