| // Copyright 2018 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 ASH_ASSISTANT_ASSISTANT_CONTROLLER_OBSERVER_H_ |
| #define ASH_ASSISTANT_ASSISTANT_CONTROLLER_OBSERVER_H_ |
| |
| #include <map> |
| #include <string> |
| |
| #include "base/macros.h" |
| #include "base/observer_list_types.h" |
| |
| class GURL; |
| |
| namespace ash { |
| |
| namespace assistant { |
| namespace util { |
| enum class DeepLinkType; |
| } // namespace util |
| } // namespace assistant |
| |
| // A checked observer which receives notification of changes to the |
| // AssistantController. |
| class AssistantControllerObserver : public base::CheckedObserver { |
| public: |
| // Invoked when the AssistantController has been fully constructed. |
| virtual void OnAssistantControllerConstructed() {} |
| |
| // Invoked when the AssistantController is starting to be destroyed. |
| virtual void OnAssistantControllerDestroying() {} |
| |
| // Invoked when Assistant has received a deep link of the specified |type| |
| // with the given |params|. |
| virtual void OnDeepLinkReceived( |
| assistant::util::DeepLinkType type, |
| const std::map<std::string, std::string>& params) {} |
| |
| // Invoked when the specified |url| is opened by Assistant in a new tab. If |
| // |from_server| is true, this event was triggered by a server response. |
| virtual void OnUrlOpened(const GURL& url, bool from_server) {} |
| |
| protected: |
| AssistantControllerObserver() = default; |
| ~AssistantControllerObserver() override = default; |
| |
| DISALLOW_COPY_AND_ASSIGN(AssistantControllerObserver); |
| }; |
| |
| } // namespace ash |
| |
| #endif // ASH_ASSISTANT_ASSISTANT_CONTROLLER_OBSERVER_H_ |