| // Copyright 2017 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef COMPONENTS_UPDATE_CLIENT_ACTION_RUNNER_H_ |
| #define COMPONENTS_UPDATE_CLIENT_ACTION_RUNNER_H_ |
| |
| #include "base/callback.h" |
| #include "base/threading/thread_checker.h" |
| #include "components/update_client/update_client.h" |
| |
| namespace base { |
| class FilePath; |
| class SingleThreadTaskRunner; |
| } // namespace base |
| |
| namespace update_client { |
| |
| class Component; |
| |
| class ActionRunner { |
| public: |
| using Callback = ActionHandler::Callback; |
| |
| explicit ActionRunner(const Component& component); |
| ~ActionRunner(); |
| |
| void Run(Callback run_complete); |
| |
| private: |
| void Handle(const base::FilePath& crx_path); |
| |
| THREAD_CHECKER(thread_checker_); |
| |
| const Component& component_; |
| |
| // Used to post callbacks to the main thread. |
| scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_; |
| |
| Callback callback_; |
| |
| ActionRunner(const ActionRunner&) = delete; |
| ActionRunner& operator=(const ActionRunner&) = delete; |
| }; |
| |
| } // namespace update_client |
| |
| #endif // COMPONENTS_UPDATE_CLIENT_ACTION_RUNNER_H_ |