Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(84)

Side by Side Diff: content/renderer/render_frame_impl.h

Issue 2538853002: Media Remoting: Draw remoting interstitial on poster image. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ 5 #ifndef CONTENT_RENDERER_RENDER_FRAME_IMPL_H_
6 #define CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ 6 #define CONTENT_RENDERER_RENDER_FRAME_IMPL_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 #include "url/gurl.h" 65 #include "url/gurl.h"
66 66
67 #if defined(ENABLE_PLUGINS) 67 #if defined(ENABLE_PLUGINS)
68 #include "content/renderer/pepper/plugin_power_saver_helper.h" 68 #include "content/renderer/pepper/plugin_power_saver_helper.h"
69 #endif 69 #endif
70 70
71 #if defined(OS_ANDROID) 71 #if defined(OS_ANDROID)
72 #include "content/renderer/media/android/renderer_media_player_manager.h" 72 #include "content/renderer/media/android/renderer_media_player_manager.h"
73 #endif 73 #endif
74 74
75 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
76 #include "media/remoting/remoting_renderer_controller.h"
77 #endif
78
75 struct FrameMsg_PostMessage_Params; 79 struct FrameMsg_PostMessage_Params;
76 struct FrameMsg_SerializeAsMHTML_Params; 80 struct FrameMsg_SerializeAsMHTML_Params;
77 struct FrameMsg_TextTrackSettings_Params; 81 struct FrameMsg_TextTrackSettings_Params;
78 82
79 namespace blink { 83 namespace blink {
80 class InterfaceRegistry; 84 class InterfaceRegistry;
81 class WebContentDecryptionModule; 85 class WebContentDecryptionModule;
82 class WebPresentationClient; 86 class WebPresentationClient;
83 class WebPushClient; 87 class WebPushClient;
84 class WebSecurityOrigin; 88 class WebSecurityOrigin;
85 enum class WebCachePolicy; 89 enum class WebCachePolicy;
86 struct WebCompositionUnderline; 90 struct WebCompositionUnderline;
87 struct WebContextMenuData; 91 struct WebContextMenuData;
88 struct WebCursorInfo; 92 struct WebCursorInfo;
89 struct WebFindOptions; 93 struct WebFindOptions;
90 } // namespace blink 94 } // namespace blink
91 95
92 namespace gfx { 96 namespace gfx {
93 class Point; 97 class Point;
94 class Range; 98 class Range;
95 class Rect; 99 class Rect;
96 } 100 }
97 101
98 namespace media { 102 namespace media {
99 class CdmFactory; 103 class CdmFactory;
100 class DecoderFactory; 104 class DecoderFactory;
101 class MediaPermission; 105 class MediaPermission;
102 class RemotingRendererController;
103 class RemotingSinkObserver; 106 class RemotingSinkObserver;
104 class RendererWebMediaPlayerDelegate; 107 class RendererWebMediaPlayerDelegate;
105 class SurfaceManager; 108 class SurfaceManager;
106 class UrlIndex; 109 class UrlIndex;
107 class WebEncryptedMediaClientImpl; 110 class WebEncryptedMediaClientImpl;
108 } // namespace media 111 } // namespace media
109 112
110 namespace service_manager { 113 namespace service_manager {
111 class InterfaceRegistry; 114 class InterfaceRegistry;
112 class InterfaceProvider; 115 class InterfaceProvider;
113 } 116 }
114 117
115 namespace url { 118 namespace url {
116 class Origin; 119 class Origin;
117 } 120 }
118 121
119 namespace content { 122 namespace content {
120 123
121 class AssociatedInterfaceProviderImpl; 124 class AssociatedInterfaceProviderImpl;
122 class BlinkInterfaceRegistryImpl; 125 class BlinkInterfaceRegistryImpl;
123 class ChildFrameCompositingHelper; 126 class ChildFrameCompositingHelper;
124 class CompositorDependencies; 127 class CompositorDependencies;
125 class DevToolsAgent; 128 class DevToolsAgent;
126 class DocumentState; 129 class DocumentState;
127 class ExternalPopupMenu; 130 class ExternalPopupMenu;
128 class HistoryEntry; 131 class HistoryEntry;
132 class ImageDownloaderImpl;
129 class ManifestManager; 133 class ManifestManager;
130 class MediaInterfaceProvider; 134 class MediaInterfaceProvider;
131 class MediaStreamDispatcher; 135 class MediaStreamDispatcher;
132 class MediaStreamRendererFactory; 136 class MediaStreamRendererFactory;
133 class MediaPermissionDispatcher; 137 class MediaPermissionDispatcher;
134 class NavigationState; 138 class NavigationState;
135 class PageState; 139 class PageState;
136 class PepperPluginInstanceImpl; 140 class PepperPluginInstanceImpl;
137 class PresentationDispatcher; 141 class PresentationDispatcher;
138 class PushMessagingDispatcher; 142 class PushMessagingDispatcher;
(...skipping 925 matching lines...) Expand 10 before | Expand all | Expand 10 after
1064 const blink::WebRect& selection_rect, 1068 const blink::WebRect& selection_rect,
1065 bool final_status_update); 1069 bool final_status_update);
1066 1070
1067 void InitializeBlameContext(RenderFrameImpl* parent_frame); 1071 void InitializeBlameContext(RenderFrameImpl* parent_frame);
1068 1072
1069 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) 1073 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
1070 // Creates the RemotingRendererController to control whether to switch to/from 1074 // Creates the RemotingRendererController to control whether to switch to/from
1071 // media remoting from/to local playback. 1075 // media remoting from/to local playback.
1072 std::unique_ptr<media::RemotingRendererController> 1076 std::unique_ptr<media::RemotingRendererController>
1073 CreateRemotingRendererController(); 1077 CreateRemotingRendererController();
1078
1079 // Called to download the poster image in given |url|. When done,
1080 // PosterDownloaded() is called |cb| will be run.
1081 void DownloadPoster(
miu 2016/11/29 22:56:08 These methods bring specific functionality (downlo
xjz 2016/12/02 19:23:10 Done.
1082 const GURL& url,
1083 const media::RemotingRendererController::PosterDownloadedCallback& cb);
1084 void PosterDownloaded(
1085 const media::RemotingRendererController::PosterDownloadedCallback& cb,
1086 int32_t http_status_code,
1087 const std::vector<SkBitmap>& images,
1088 const std::vector<gfx::Size>& sizes);
1074 #endif 1089 #endif
1075 1090
1076 // Stores the WebLocalFrame we are associated with. This is null from the 1091 // Stores the WebLocalFrame we are associated with. This is null from the
1077 // constructor until BindToWebFrame is called, and it is null after 1092 // constructor until BindToWebFrame is called, and it is null after
1078 // frameDetached is called until destruction (which is asynchronous in the 1093 // frameDetached is called until destruction (which is asynchronous in the
1079 // case of the main frame, but not subframes). 1094 // case of the main frame, but not subframes).
1080 blink::WebLocalFrame* frame_; 1095 blink::WebLocalFrame* frame_;
1081 1096
1082 // Boolean value indicating whether this RenderFrameImpl object is for the 1097 // Boolean value indicating whether this RenderFrameImpl object is for the
1083 // main frame or not. It remains accurate during destruction, even when 1098 // main frame or not. It remains accurate during destruction, even when
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
1211 RendererMediaPlayerManager* media_player_manager_; 1226 RendererMediaPlayerManager* media_player_manager_;
1212 RendererMediaSessionManager* media_session_manager_; 1227 RendererMediaSessionManager* media_session_manager_;
1213 #endif 1228 #endif
1214 1229
1215 media::SurfaceManager* media_surface_manager_; 1230 media::SurfaceManager* media_surface_manager_;
1216 1231
1217 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) 1232 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
1218 // Lazy-bound pointer to the RemoterFactory service in the browser 1233 // Lazy-bound pointer to the RemoterFactory service in the browser
1219 // process. Always use the GetRemoterFactory() accessor instead of this. 1234 // process. Always use the GetRemoterFactory() accessor instead of this.
1220 media::mojom::RemoterFactoryPtr remoter_factory_; 1235 media::mojom::RemoterFactoryPtr remoter_factory_;
1236
1221 // An observer for the remoting sink availability that is used by 1237 // An observer for the remoting sink availability that is used by
1222 // media::RemotingCdmFactory to initialize media::RemotingSourceImpl. Created 1238 // media::RemotingCdmFactory to initialize media::RemotingSourceImpl. Created
1223 // in the constructor of RenderFrameImpl to make sure 1239 // in the constructor of RenderFrameImpl to make sure
1224 // media::RemotingSourceImpl be intialized with correct availability info. 1240 // media::RemotingSourceImpl be intialized with correct availability info.
1225 // Own by media::RemotingCdmFactory after it is created. 1241 // Own by media::RemotingCdmFactory after it is created.
1226 std::unique_ptr<media::RemotingSinkObserver> remoting_sink_observer_; 1242 std::unique_ptr<media::RemotingSinkObserver> remoting_sink_observer_;
1243
1244 // The downloader used to download poster image, lazily initialized.
1245 std::unique_ptr<ImageDownloaderImpl> poster_image_downloader_;
miu 2016/11/29 22:56:08 Looks like ImageDownloaderImpl deletes itself when
xjz 2016/12/02 19:23:10 Not applicable.
1227 #endif 1246 #endif
1228 1247
1229 // The CDM and decoder factory attached to this frame, lazily initialized. 1248 // The CDM and decoder factory attached to this frame, lazily initialized.
1230 std::unique_ptr<media::CdmFactory> cdm_factory_; 1249 std::unique_ptr<media::CdmFactory> cdm_factory_;
1231 std::unique_ptr<media::DecoderFactory> decoder_factory_; 1250 std::unique_ptr<media::DecoderFactory> decoder_factory_;
1232 1251
1233 // Media resource cache, lazily initialized. 1252 // Media resource cache, lazily initialized.
1234 linked_ptr<media::UrlIndex> url_index_; 1253 linked_ptr<media::UrlIndex> url_index_;
1235 1254
1236 // The devtools agent for this frame; only created for main frame and 1255 // The devtools agent for this frame; only created for main frame and
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
1341 bool browser_side_navigation_pending_ = false; 1360 bool browser_side_navigation_pending_ = false;
1342 1361
1343 base::WeakPtrFactory<RenderFrameImpl> weak_factory_; 1362 base::WeakPtrFactory<RenderFrameImpl> weak_factory_;
1344 1363
1345 DISALLOW_COPY_AND_ASSIGN(RenderFrameImpl); 1364 DISALLOW_COPY_AND_ASSIGN(RenderFrameImpl);
1346 }; 1365 };
1347 1366
1348 } // namespace content 1367 } // namespace content
1349 1368
1350 #endif // CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ 1369 #endif // CONTENT_RENDERER_RENDER_FRAME_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698