| // Copyright 2022 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef COMPONENTS_CAST_RECEIVER_BROWSER_PUBLIC_RUNTIME_APPLICATION_H_ |
| #define COMPONENTS_CAST_RECEIVER_BROWSER_PUBLIC_RUNTIME_APPLICATION_H_ |
| |
| #include <ostream> |
| #include <string> |
| |
| #include "base/functional/callback.h" |
| #include "components/cast_receiver/common/public/status.h" |
| #include "components/url_rewrite/mojom/url_request_rewrite.mojom.h" |
| |
| namespace cast_receiver { |
| |
| // Provides accessors for information about an application running in this |
| // runtime. |
| class RuntimeApplication { |
| public: |
| using StatusCallback = base::OnceCallback<void(cast_receiver::Status)>; |
| |
| virtual ~RuntimeApplication(); |
| |
| // Returns the display name of the application. |
| virtual const std::string& GetDisplayName() const = 0; |
| |
| // Returns the application ID of the application. |
| virtual const std::string& GetAppId() const = 0; |
| |
| // Returns the session id for this cast session. |
| virtual const std::string& GetCastSessionId() const = 0; |
| |
| // Returns whether this instance is associated with cast streaming. |
| virtual bool IsStreamingApplication() const = 0; |
| |
| // Returns whether this application is currently running. |
| virtual bool IsApplicationRunning() const = 0; |
| |
| // Called before Launch() to perform any pre-launch loading that is |
| // necessary. The |callback| will be called indicating if the operation |
| // succeeded or not. If Load fails, |this| should be destroyed since it's |
| // not necessarily valid to retry Load with a new request. |
| virtual void Load(StatusCallback callback) = 0; |
| |
| // Called to launch the application. The |callback| will be called |
| // indicating if the operation succeeded or not. |
| virtual void Launch(StatusCallback callback) = 0; |
| |
| // Called to stop the application. The |callback| will be called indicating |
| // if the operation succeeded or not. |
| virtual void Stop(StatusCallback callback) = 0; |
| |
| // Sets URL rewrite rules. |
| virtual void SetUrlRewriteRules( |
| url_rewrite::mojom::UrlRequestRewriteRulesPtr mojom_rules) = 0; |
| |
| // Sets media playback state. |
| virtual void SetMediaBlocking(bool load_blocked, bool start_blocked) = 0; |
| |
| // Sets visibility state. |
| virtual void SetVisibility(bool is_visible) = 0; |
| |
| // Sets touch input. |
| virtual void SetTouchInputEnabled(bool enabled) = 0; |
| }; |
| |
| std::ostream& operator<<(std::ostream& os, const RuntimeApplication& app); |
| |
| } // namespace cast_receiver |
| |
| #endif // COMPONENTS_CAST_RECEIVER_BROWSER_PUBLIC_RUNTIME_APPLICATION_H_ |