#include "chrome/browser/drive/drive_app_registry.h"
#include "chrome/browser/extensions/extension_host.h"
#include "chrome/browser/extensions/extension_service.h"
-#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/extension_tab_util.h"
#include "chrome/browser/extensions/extension_util.h"
#include "chrome/browser/profiles/profile.h"
#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/pref_names.h"
+#include "extensions/browser/extension_system.h"
#include "extensions/common/extension_set.h"
#include "webkit/browser/fileapi/file_system_context.h"
#include "webkit/browser/fileapi/file_system_url.h"
const size_t kDriveTaskExtensionPrefixLength =
arraysize(kDriveTaskExtensionPrefix) - 1;
-// Checks if the file browser extension has permissions for the files in its
-// file system context.
-bool FileBrowserHasAccessPermissionForFiles(
- Profile* profile,
- const GURL& source_url,
- const std::string& file_browser_id,
- const std::vector<FileSystemURL>& files) {
- fileapi::ExternalFileSystemBackend* backend =
- util::GetFileSystemContextForExtensionId(
- profile, file_browser_id)->external_backend();
- if (!backend)
- return false;
-
- for (size_t i = 0; i < files.size(); ++i) {
- // Make sure this url really being used by the right caller extension.
- if (source_url.GetOrigin() != files[i].origin())
- return false;
-
- if (!chromeos::FileSystemBackend::CanHandleURL(files[i]) ||
- !backend->IsAccessAllowed(files[i])) {
- return false;
- }
- }
-
- return true;
-}
-
// Returns true if path_mime_set contains a Google document.
bool ContainsGoogleDocument(const PathAndMimeTypeSet& path_mime_set) {
for (PathAndMimeTypeSet::const_iterator iter = path_mime_set.begin();
bool ExecuteFileTask(Profile* profile,
const GURL& source_url,
- const std::string& app_id,
const TaskDescriptor& task,
const std::vector<FileSystemURL>& file_urls,
const FileTaskFinishedCallback& done) {
- if (!FileBrowserHasAccessPermissionForFiles(profile, source_url,
- app_id, file_urls))
- return false;
-
// drive::FileTaskExecutor is responsible to handle drive tasks.
if (task.task_type == TASK_TYPE_DRIVE_APP) {
DCHECK_EQ(kDriveAppActionID, task.action_id);
}
if (!done.is_null())
- done.Run(true);
+ done.Run(extensions::api::file_browser_private::TASK_RESULT_MESSAGE_SENT);
return true;
}
NOTREACHED();