Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / chrome / browser / chromeos / file_system_provider / operations / execute_action.cc
blob8e2bb162653db682dce5b2587489cfdf8bada0a0
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chrome/browser/chromeos/file_system_provider/operations/execute_action.h"
7 #include <algorithm>
8 #include <string>
10 #include "chrome/common/extensions/api/file_system_provider.h"
11 #include "chrome/common/extensions/api/file_system_provider_internal.h"
13 namespace chromeos {
14 namespace file_system_provider {
15 namespace operations {
17 ExecuteAction::ExecuteAction(
18 extensions::EventRouter* event_router,
19 const ProvidedFileSystemInfo& file_system_info,
20 const base::FilePath& entry_path,
21 const std::string& action_id,
22 const storage::AsyncFileUtil::StatusCallback& callback)
23 : Operation(event_router, file_system_info),
24 entry_path_(entry_path),
25 action_id_(action_id),
26 callback_(callback) {
29 ExecuteAction::~ExecuteAction() {
32 bool ExecuteAction::Execute(int request_id) {
33 using extensions::api::file_system_provider::ExecuteActionRequestedOptions;
35 ExecuteActionRequestedOptions options;
36 options.file_system_id = file_system_info_.file_system_id();
37 options.request_id = request_id;
38 options.entry_path = entry_path_.AsUTF8Unsafe();
39 options.action_id = action_id_;
41 return SendEvent(
42 request_id,
43 extensions::events::FILE_SYSTEM_PROVIDER_ON_EXECUTE_ACTION_REQUESTED,
44 extensions::api::file_system_provider::OnExecuteActionRequested::
45 kEventName,
46 extensions::api::file_system_provider::OnExecuteActionRequested::Create(
47 options));
50 void ExecuteAction::OnSuccess(int /* request_id */,
51 scoped_ptr<RequestValue> result,
52 bool has_more) {
53 callback_.Run(base::File::FILE_OK);
56 void ExecuteAction::OnError(int /* request_id */,
57 scoped_ptr<RequestValue> /* result */,
58 base::File::Error error) {
59 callback_.Run(error);
62 } // namespace operations
63 } // namespace file_system_provider
64 } // namespace chromeos