| Index: media/remoting/remoting_renderer_controller.h
|
| diff --git a/media/remoting/remoting_renderer_controller.h b/media/remoting/remoting_renderer_controller.h
|
| index 9c98af12b555441c1ade86ff34291b321c7a8076..bf235f3266df84006602d3107aabc900fec407b3 100644
|
| --- a/media/remoting/remoting_renderer_controller.h
|
| +++ b/media/remoting/remoting_renderer_controller.h
|
| @@ -9,6 +9,7 @@
|
| #include "base/memory/weak_ptr.h"
|
| #include "media/base/media_observer.h"
|
| #include "media/remoting/remoting_source_impl.h"
|
| +#include "third_party/skia/include/core/SkBitmap.h"
|
|
|
| namespace media {
|
|
|
| @@ -37,9 +38,27 @@ class RemotingRendererController final : public RemotingSourceImpl::Client,
|
| void OnExitedFullscreen() override;
|
| void OnSetCdm(CdmContext* cdm_context) override;
|
| void OnMetadataChanged(const PipelineMetadata& metadata) override;
|
| + void OnSetPoster(const GURL& poster) override;
|
|
|
| void SetSwitchRendererCallback(const base::Closure& cb);
|
|
|
| + using DownloadPosterCallback =
|
| + base::Callback<void(const GURL&,
|
| + const base::Callback<void(const SkBitmap&)>&)>;
|
| + // Set the callback to download poster image. Can only be called once.
|
| + void SetDownloadPosterCallback(const DownloadPosterCallback& cb);
|
| +
|
| + // Download the poster image if available, and show remoting interstitial.
|
| + // Called when the poster URL is changed (to update the background image).
|
| + // TODO(xjz): https://codereview.chromium.org/2566223005/
|
| + // Call this when:
|
| + // 1. SetShowInterstitialCallback() is called (RemoteRendererImpl is created).
|
| + // 2. The remoting session is shut down (to update the status message in the
|
| + // interstitial).
|
| + // 3. The size of the canvas is changed (to update the background image and
|
| + // the position of the status message).
|
| + void UpdateAndMaybeShowInterstitial();
|
| +
|
| base::WeakPtr<RemotingRendererController> GetWeakPtr() {
|
| return weak_factory_.GetWeakPtr();
|
| }
|
| @@ -90,6 +109,9 @@ class RemotingRendererController final : public RemotingSourceImpl::Client,
|
| // necessary.
|
| void UpdateAndMaybeSwitch();
|
|
|
| + // Called when poster image is downloaded.
|
| + void PosterImageDownloaded(const SkBitmap& image);
|
| +
|
| // Indicates whether this media element or its ancestor is in full screen.
|
| bool is_fullscreen_ = false;
|
|
|
| @@ -116,6 +138,10 @@ class RemotingRendererController final : public RemotingSourceImpl::Client,
|
|
|
| PipelineMetadata pipeline_metadata_;
|
|
|
| + GURL poster_url_;
|
| +
|
| + DownloadPosterCallback download_poster_cb_;
|
| +
|
| base::WeakPtrFactory<RemotingRendererController> weak_factory_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(RemotingRendererController);
|
|
|