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

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

Issue 2905613003: Extract media code from RenderFrameImpl (Closed)
Patch Set: MediaFactory, cleaner responsibilities. Mojo fix Created 3 years, 6 months 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
11 #include <deque> 11 #include <deque>
12 #include <map> 12 #include <map>
13 #include <memory> 13 #include <memory>
14 #include <set> 14 #include <set>
15 #include <string> 15 #include <string>
16 #include <vector> 16 #include <vector>
17 17
18 #include "base/callback.h" 18 #include "base/callback.h"
19 #include "base/files/file_path.h" 19 #include "base/files/file_path.h"
20 #include "base/gtest_prod_util.h" 20 #include "base/gtest_prod_util.h"
21 #include "base/id_map.h" 21 #include "base/id_map.h"
22 #include "base/macros.h" 22 #include "base/macros.h"
23 #include "base/memory/linked_ptr.h"
24 #include "base/memory/ref_counted.h" 23 #include "base/memory/ref_counted.h"
25 #include "base/memory/weak_ptr.h" 24 #include "base/memory/weak_ptr.h"
26 #include "base/observer_list.h" 25 #include "base/observer_list.h"
27 #include "base/optional.h" 26 #include "base/optional.h"
28 #include "base/process/process_handle.h" 27 #include "base/process/process_handle.h"
29 #include "base/single_thread_task_runner.h" 28 #include "base/single_thread_task_runner.h"
30 #include "base/unguessable_token.h" 29 #include "base/unguessable_token.h"
31 #include "build/build_config.h" 30 #include "build/build_config.h"
32 #include "content/common/accessibility_mode.h" 31 #include "content/common/accessibility_mode.h"
33 #include "content/common/associated_interface_registry_impl.h" 32 #include "content/common/associated_interface_registry_impl.h"
34 #include "content/common/download/mhtml_save_status.h" 33 #include "content/common/download/mhtml_save_status.h"
35 #include "content/common/features.h" 34 #include "content/common/features.h"
36 #include "content/common/frame.mojom.h" 35 #include "content/common/frame.mojom.h"
37 #include "content/common/frame_message_enums.h" 36 #include "content/common/frame_message_enums.h"
38 #include "content/common/host_zoom.mojom.h" 37 #include "content/common/host_zoom.mojom.h"
39 #include "content/common/renderer.mojom.h" 38 #include "content/common/renderer.mojom.h"
40 #include "content/common/url_loader_factory.mojom.h" 39 #include "content/common/url_loader_factory.mojom.h"
41 #include "content/public/common/console_message_level.h" 40 #include "content/public/common/console_message_level.h"
42 #include "content/public/common/javascript_dialog_type.h" 41 #include "content/public/common/javascript_dialog_type.h"
43 #include "content/public/common/previews_state.h" 42 #include "content/public/common/previews_state.h"
44 #include "content/public/common/referrer.h" 43 #include "content/public/common/referrer.h"
44 #include "content/public/common/renderer_preferences.h"
45 #include "content/public/common/request_context_type.h" 45 #include "content/public/common/request_context_type.h"
46 #include "content/public/common/stop_find_action.h" 46 #include "content/public/common/stop_find_action.h"
47 #include "content/public/renderer/render_frame.h" 47 #include "content/public/renderer/render_frame.h"
48 #include "content/renderer/frame_blame_context.h" 48 #include "content/renderer/frame_blame_context.h"
49 #include "content/renderer/media/media_factory.h"
49 #include "content/renderer/mojo/blink_interface_provider_impl.h" 50 #include "content/renderer/mojo/blink_interface_provider_impl.h"
50 #include "content/renderer/renderer_webcookiejar_impl.h" 51 #include "content/renderer/renderer_webcookiejar_impl.h"
51 #include "content/renderer/unique_name_helper.h" 52 #include "content/renderer/unique_name_helper.h"
52 #include "ipc/ipc_message.h" 53 #include "ipc/ipc_message.h"
53 #include "ipc/ipc_platform_file.h" 54 #include "ipc/ipc_platform_file.h"
54 #include "media/base/routing_token_callback.h" 55 #include "media/base/routing_token_callback.h"
55 #include "media/blink/webmediaplayer_delegate.h"
56 #include "media/blink/webmediaplayer_params.h"
57 #include "media/mojo/features.h"
58 #include "media/mojo/interfaces/remoting.mojom.h"
59 #include "mojo/public/cpp/bindings/associated_binding.h" 56 #include "mojo/public/cpp/bindings/associated_binding.h"
60 #include "mojo/public/cpp/bindings/binding.h" 57 #include "mojo/public/cpp/bindings/binding.h"
61 #include "mojo/public/cpp/bindings/binding_set.h" 58 #include "mojo/public/cpp/bindings/binding_set.h"
62 #include "mojo/public/cpp/system/data_pipe.h" 59 #include "mojo/public/cpp/system/data_pipe.h"
63 #include "ppapi/features/features.h" 60 #include "ppapi/features/features.h"
64 #include "services/service_manager/public/cpp/bind_source_info.h" 61 #include "services/service_manager/public/cpp/bind_source_info.h"
65 #include "services/service_manager/public/cpp/binder_registry.h" 62 #include "services/service_manager/public/cpp/binder_registry.h"
66 #include "services/service_manager/public/interfaces/connector.mojom.h" 63 #include "services/service_manager/public/interfaces/connector.mojom.h"
67 #include "services/service_manager/public/interfaces/interface_provider.mojom.h" 64 #include "services/service_manager/public/interfaces/interface_provider.mojom.h"
68 #include "third_party/WebKit/public/platform/WebEffectiveConnectionType.h" 65 #include "third_party/WebKit/public/platform/WebEffectiveConnectionType.h"
(...skipping 12 matching lines...) Expand all
81 #include "third_party/WebKit/public/web/WebMeaningfulLayout.h" 78 #include "third_party/WebKit/public/web/WebMeaningfulLayout.h"
82 #include "third_party/WebKit/public/web/WebScriptExecutionCallback.h" 79 #include "third_party/WebKit/public/web/WebScriptExecutionCallback.h"
83 #include "ui/gfx/range/range.h" 80 #include "ui/gfx/range/range.h"
84 #include "url/gurl.h" 81 #include "url/gurl.h"
85 #include "url/origin.h" 82 #include "url/origin.h"
86 83
87 #if BUILDFLAG(ENABLE_PLUGINS) 84 #if BUILDFLAG(ENABLE_PLUGINS)
88 #include "content/renderer/pepper/plugin_power_saver_helper.h" 85 #include "content/renderer/pepper/plugin_power_saver_helper.h"
89 #endif 86 #endif
90 87
91 #if defined(OS_ANDROID)
92 #include "content/renderer/media/android/renderer_media_player_manager.h"
93 #endif
94
95 struct FrameMsg_CommitDataNetworkService_Params; 88 struct FrameMsg_CommitDataNetworkService_Params;
96 struct FrameMsg_MixedContentFound_Params; 89 struct FrameMsg_MixedContentFound_Params;
97 struct FrameMsg_PostMessage_Params; 90 struct FrameMsg_PostMessage_Params;
98 struct FrameMsg_SerializeAsMHTML_Params; 91 struct FrameMsg_SerializeAsMHTML_Params;
99 struct FrameMsg_TextTrackSettings_Params; 92 struct FrameMsg_TextTrackSettings_Params;
100 93
101 namespace blink { 94 namespace blink {
102 class WebContentDecryptionModule; 95 class WebContentDecryptionModule;
103 class WebPresentationClient; 96 class WebPresentationClient;
104 class WebPushClient; 97 class WebPushClient;
105 class WebSecurityOrigin; 98 class WebSecurityOrigin;
106 enum class WebCachePolicy; 99 enum class WebCachePolicy;
107 struct WebCompositionUnderline; 100 struct WebCompositionUnderline;
108 struct WebContextMenuData; 101 struct WebContextMenuData;
109 struct WebCursorInfo; 102 struct WebCursorInfo;
110 struct WebFindOptions; 103 struct WebFindOptions;
111 class WebRelatedAppsFetcher; 104 class WebRelatedAppsFetcher;
112 } // namespace blink 105 } // namespace blink
113 106
114 namespace gfx { 107 namespace gfx {
115 class Point; 108 class Point;
116 class Range; 109 class Range;
117 } 110 }
118 111
119 namespace media { 112 namespace media {
120 class CdmFactory;
121 class DecoderFactory;
122 class MediaPermission; 113 class MediaPermission;
123 class RendererWebMediaPlayerDelegate; 114 }
124 class SurfaceManager;
125 class UrlIndex;
126 class WebEncryptedMediaClientImpl;
127
128 namespace remoting {
129 class SinkAvailabilityObserver;
130 } // namespace remoting
131
132 } // namespace media
133 115
134 namespace service_manager { 116 namespace service_manager {
135 class BinderRegistry; 117 class BinderRegistry;
136 class InterfaceProvider; 118 class InterfaceProvider;
137 } 119 }
138 120
139 namespace url { 121 namespace url {
140 class Origin; 122 class Origin;
141 } 123 }
142 124
143 namespace content { 125 namespace content {
144 126
145 class AssociatedInterfaceProviderImpl; 127 class AssociatedInterfaceProviderImpl;
146 class BlinkInterfaceRegistryImpl; 128 class BlinkInterfaceRegistryImpl;
147 class ChildFrameCompositingHelper; 129 class ChildFrameCompositingHelper;
148 class CompositorDependencies; 130 class CompositorDependencies;
149 class DevToolsAgent; 131 class DevToolsAgent;
150 class DocumentState; 132 class DocumentState;
151 class ExternalPopupMenu; 133 class ExternalPopupMenu;
152 class HistoryEntry; 134 class HistoryEntry;
153 class ManifestManager; 135 class ManifestManager;
154 class MediaInterfaceProvider; 136 class MediaPermissionDispatcher;
155 class MediaStreamDispatcher; 137 class MediaStreamDispatcher;
156 class MediaStreamRendererFactory;
157 class MediaPermissionDispatcher;
158 class NavigationState; 138 class NavigationState;
159 class PepperPluginInstanceImpl; 139 class PepperPluginInstanceImpl;
160 class PresentationDispatcher; 140 class PresentationDispatcher;
161 class PushMessagingClient; 141 class PushMessagingClient;
162 class RelatedAppsFetcher; 142 class RelatedAppsFetcher;
163 class RenderAccessibilityImpl; 143 class RenderAccessibilityImpl;
164 class RendererMediaPlayerManager;
165 class RendererPpapiHost; 144 class RendererPpapiHost;
166 class RenderFrameObserver; 145 class RenderFrameObserver;
167 class RenderViewImpl; 146 class RenderViewImpl;
168 class RenderWidget; 147 class RenderWidget;
169 class RenderWidgetFullscreenPepper; 148 class RenderWidgetFullscreenPepper;
170 class ResourceRequestBodyImpl; 149 class ResourceRequestBodyImpl;
171 class ScreenOrientationDispatcher; 150 class ScreenOrientationDispatcher;
172 class SharedWorkerRepository; 151 class SharedWorkerRepository;
173 class UserMediaClientImpl; 152 class UserMediaClientImpl;
174 struct CSPViolationParams; 153 struct CSPViolationParams;
(...skipping 581 matching lines...) Expand 10 before | Expand all | Expand 10 after
756 void PepperInstanceDeleted(PepperPluginInstanceImpl* instance); 735 void PepperInstanceDeleted(PepperPluginInstanceImpl* instance);
757 736
758 // Notification that the given plugin is focused or unfocused. 737 // Notification that the given plugin is focused or unfocused.
759 void PepperFocusChanged(PepperPluginInstanceImpl* instance, bool focused); 738 void PepperFocusChanged(PepperPluginInstanceImpl* instance, bool focused);
760 739
761 void PepperStartsPlayback(PepperPluginInstanceImpl* instance); 740 void PepperStartsPlayback(PepperPluginInstanceImpl* instance);
762 void PepperStopsPlayback(PepperPluginInstanceImpl* instance); 741 void PepperStopsPlayback(PepperPluginInstanceImpl* instance);
763 void OnSetPepperVolume(int32_t pp_instance, double volume); 742 void OnSetPepperVolume(int32_t pp_instance, double volume);
764 #endif // ENABLE_PLUGINS 743 #endif // ENABLE_PLUGINS
765 744
745 const RendererPreferences& GetRendererPreferences() const;
746
766 protected: 747 protected:
767 explicit RenderFrameImpl(const CreateParams& params); 748 explicit RenderFrameImpl(const CreateParams& params);
768 749
769 private: 750 private:
770 friend class RenderFrameImplTest; 751 friend class RenderFrameImplTest;
771 friend class RenderFrameObserver; 752 friend class RenderFrameObserver;
772 friend class RenderAccessibilityImplTest; 753 friend class RenderAccessibilityImplTest;
773 friend class TestRenderFrame; 754 friend class TestRenderFrame;
774 FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuDisplayNoneTest, SelectItem); 755 FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuDisplayNoneTest, SelectItem);
775 FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuRemoveTest, RemoveOnChange); 756 FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuRemoveTest, RemoveOnChange);
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
1037 void HandleJavascriptExecutionResult(const base::string16& javascript, 1018 void HandleJavascriptExecutionResult(const base::string16& javascript,
1038 int id, 1019 int id,
1039 bool notify_result, 1020 bool notify_result,
1040 v8::Local<v8::Value> result); 1021 v8::Local<v8::Value> result);
1041 1022
1042 // Initializes |web_user_media_client_|. If this fails, because it wasn't 1023 // Initializes |web_user_media_client_|. If this fails, because it wasn't
1043 // possible to create a MediaStreamClient (e.g., WebRTC is disabled), then 1024 // possible to create a MediaStreamClient (e.g., WebRTC is disabled), then
1044 // |web_user_media_client_| will remain NULL. 1025 // |web_user_media_client_| will remain NULL.
1045 void InitializeUserMediaClient(); 1026 void InitializeUserMediaClient();
1046 1027
1047 blink::WebMediaPlayer* CreateWebMediaPlayerForMediaStream(
1048 blink::WebMediaPlayerClient* client,
1049 const blink::WebString& sink_id,
1050 const blink::WebSecurityOrigin& security_origin);
1051
1052 // Creates a factory object used for creating audio and video renderers.
1053 std::unique_ptr<MediaStreamRendererFactory> CreateRendererFactory();
1054
1055 // Does preparation for the navigation to |url|. 1028 // Does preparation for the navigation to |url|.
1056 void PrepareRenderViewForNavigation( 1029 void PrepareRenderViewForNavigation(
1057 const GURL& url, 1030 const GURL& url,
1058 const RequestNavigationParams& request_params); 1031 const RequestNavigationParams& request_params);
1059 1032
1060 // PlzNavigate 1033 // PlzNavigate
1061 // Sends a FrameHostMsg_BeginNavigation to the browser 1034 // Sends a FrameHostMsg_BeginNavigation to the browser
1062 void BeginNavigation(const NavigationPolicyInfo& info); 1035 void BeginNavigation(const NavigationPolicyInfo& info);
1063 1036
1064 // Loads a data url. 1037 // Loads a data url.
(...skipping 24 matching lines...) Expand all
1089 // Returns a new NavigationState populated with the navigation information 1062 // Returns a new NavigationState populated with the navigation information
1090 // saved in OnNavigate(). 1063 // saved in OnNavigate().
1091 NavigationState* CreateNavigationStateFromPending(); 1064 NavigationState* CreateNavigationStateFromPending();
1092 1065
1093 // Sets the NavigationState on the DocumentState based on 1066 // Sets the NavigationState on the DocumentState based on
1094 // the value of |pending_navigation_params_|. 1067 // the value of |pending_navigation_params_|.
1095 void UpdateNavigationState(DocumentState* document_state, 1068 void UpdateNavigationState(DocumentState* document_state,
1096 bool was_within_same_page, 1069 bool was_within_same_page,
1097 bool content_initiated); 1070 bool content_initiated);
1098 1071
1099 #if defined(OS_ANDROID)
1100 RendererMediaPlayerManager* GetMediaPlayerManager();
1101 #endif
1102
1103 bool AreSecureCodecsSupported(); 1072 bool AreSecureCodecsSupported();
1104 1073
1105 #if BUILDFLAG(ENABLE_MOJO_MEDIA)
1106 service_manager::mojom::InterfaceProvider* GetMediaInterfaceProvider();
1107 #endif
1108
1109 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
1110 media::mojom::RemoterFactory* GetRemoterFactory();
1111 #endif
1112
1113 media::CdmFactory* GetCdmFactory();
1114 media::DecoderFactory* GetDecoderFactory();
1115
1116 #if BUILDFLAG(ENABLE_PLUGINS) 1074 #if BUILDFLAG(ENABLE_PLUGINS)
1117 void HandlePepperImeCommit(const base::string16& text); 1075 void HandlePepperImeCommit(const base::string16& text);
1118 #endif // ENABLE_PLUGINS 1076 #endif // ENABLE_PLUGINS
1119 1077
1120 void RegisterMojoInterfaces(); 1078 void RegisterMojoInterfaces();
1121 1079
1122 // Connect to an interface provided by the service registry. 1080 // Connect to an interface provided by the service registry.
1123 template <typename Interface> 1081 template <typename Interface>
1124 void GetInterface(mojo::InterfaceRequest<Interface> request); 1082 void GetInterface(mojo::InterfaceRequest<Interface> request);
1125 1083
1126 void OnHostZoomClientRequest(mojom::HostZoomAssociatedRequest request); 1084 void OnHostZoomClientRequest(mojom::HostZoomAssociatedRequest request);
1127 1085
1128 // Returns the media delegate for WebMediaPlayer usage. If
1129 // |media_player_delegate_| is NULL, one is created.
1130 media::RendererWebMediaPlayerDelegate* GetWebMediaPlayerDelegate();
1131
1132 // Called to get the WebPlugin to handle find requests in the document. 1086 // Called to get the WebPlugin to handle find requests in the document.
1133 // Returns nullptr if there is no such WebPlugin. 1087 // Returns nullptr if there is no such WebPlugin.
1134 blink::WebPlugin* GetWebPluginForFind(); 1088 blink::WebPlugin* GetWebPluginForFind();
1135 1089
1136 // Sends a reply to the current find operation handling if it was a 1090 // Sends a reply to the current find operation handling if it was a
1137 // synchronous find request. 1091 // synchronous find request.
1138 void SendFindReply(int request_id, 1092 void SendFindReply(int request_id,
1139 int match_count, 1093 int match_count,
1140 int ordinal, 1094 int ordinal,
1141 const blink::WebRect& selection_rect, 1095 const blink::WebRect& selection_rect,
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
1267 // of handling a InputMsg_SelectRange IPC. 1221 // of handling a InputMsg_SelectRange IPC.
1268 bool handling_select_range_; 1222 bool handling_select_range_;
1269 1223
1270 // The next group of objects all implement RenderFrameObserver, so are deleted 1224 // The next group of objects all implement RenderFrameObserver, so are deleted
1271 // along with the RenderFrame automatically. This is why we just store weak 1225 // along with the RenderFrame automatically. This is why we just store weak
1272 // references. 1226 // references.
1273 1227
1274 // Destroyed via the RenderFrameObserver::OnDestruct() mechanism. 1228 // Destroyed via the RenderFrameObserver::OnDestruct() mechanism.
1275 UserMediaClientImpl* web_user_media_client_; 1229 UserMediaClientImpl* web_user_media_client_;
1276 1230
1277 // EncryptedMediaClient attached to this frame; lazily initialized.
1278 std::unique_ptr<media::WebEncryptedMediaClientImpl>
1279 web_encrypted_media_client_;
1280
1281 // The media permission dispatcher attached to this frame. 1231 // The media permission dispatcher attached to this frame.
1282 std::unique_ptr<MediaPermissionDispatcher> media_permission_dispatcher_; 1232 std::unique_ptr<MediaPermissionDispatcher> media_permission_dispatcher_;
1283 1233
1284 #if BUILDFLAG(ENABLE_MOJO_MEDIA)
1285 // The media interface provider attached to this frame, lazily initialized.
1286 std::unique_ptr<MediaInterfaceProvider> media_interface_provider_;
1287 #endif
1288
1289 #if defined(OS_ANDROID)
1290 // Manages all media players and sessions in this render frame for
1291 // communicating with the real media player and sessions in the
1292 // browser process. It's okay to use raw pointers since they're both
1293 // RenderFrameObservers.
1294 RendererMediaPlayerManager* media_player_manager_;
1295 #endif
1296
1297 media::SurfaceManager* media_surface_manager_;
1298
1299 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
1300 // Lazy-bound pointer to the RemoterFactory service in the browser
1301 // process. Always use the GetRemoterFactory() accessor instead of this.
1302 media::mojom::RemoterFactoryPtr remoter_factory_;
1303
1304 // An observer for the remoting sink availability that is used by
1305 // media::RemotingCdmFactory to initialize media::RemotingSourceImpl. Created
1306 // in the constructor of RenderFrameImpl to make sure
1307 // media::RemotingSourceImpl be intialized with correct availability info.
1308 // Own by media::RemotingCdmFactory after it is created.
1309 std::unique_ptr<media::remoting::SinkAvailabilityObserver>
1310 remoting_sink_observer_;
1311 #endif
1312
1313 // The CDM and decoder factory attached to this frame, lazily initialized.
1314 std::unique_ptr<media::CdmFactory> cdm_factory_;
1315 std::unique_ptr<media::DecoderFactory> decoder_factory_;
1316
1317 // Media resource cache, lazily initialized.
1318 linked_ptr<media::UrlIndex> url_index_;
1319
1320 // The devtools agent for this frame; only created for main frame and 1234 // The devtools agent for this frame; only created for main frame and
1321 // local roots. 1235 // local roots.
1322 DevToolsAgent* devtools_agent_; 1236 DevToolsAgent* devtools_agent_;
1323 1237
1324 // The presentation dispatcher implementation attached to this frame, lazily 1238 // The presentation dispatcher implementation attached to this frame, lazily
1325 // initialized. 1239 // initialized.
1326 PresentationDispatcher* presentation_dispatcher_; 1240 PresentationDispatcher* presentation_dispatcher_;
1327 1241
1328 // The PushMessagingClient attached to this frame, lazily initialized. 1242 // The PushMessagingClient attached to this frame, lazily initialized.
1329 PushMessagingClient* push_messaging_client_; 1243 PushMessagingClient* push_messaging_client_;
(...skipping 21 matching lines...) Expand all
1351 1265
1352 // The current accessibility mode. 1266 // The current accessibility mode.
1353 AccessibilityMode accessibility_mode_; 1267 AccessibilityMode accessibility_mode_;
1354 1268
1355 // Only valid if |accessibility_mode_| has |AccessibilityMode::kWebContents| 1269 // Only valid if |accessibility_mode_| has |AccessibilityMode::kWebContents|
1356 // flag set. 1270 // flag set.
1357 RenderAccessibilityImpl* render_accessibility_; 1271 RenderAccessibilityImpl* render_accessibility_;
1358 1272
1359 std::unique_ptr<RelatedAppsFetcher> related_apps_fetcher_; 1273 std::unique_ptr<RelatedAppsFetcher> related_apps_fetcher_;
1360 1274
1361 // Manages play, pause notifications for WebMediaPlayer implementations; its
1362 // lifetime is tied to the RenderFrame via the RenderFrameObserver interface.
1363 media::RendererWebMediaPlayerDelegate* media_player_delegate_;
1364
1365 // The PreviewsState of this RenderFrame that indicates which Previews can 1275 // The PreviewsState of this RenderFrame that indicates which Previews can
1366 // be used. The PreviewsState is a bitmask of potentially several Previews 1276 // be used. The PreviewsState is a bitmask of potentially several Previews
1367 // optimizations. 1277 // optimizations.
1368 // TODO(sclittle): Consider moving this into Blink to be owned and managed by 1278 // TODO(sclittle): Consider moving this into Blink to be owned and managed by
1369 // LocalFrame or another class around there. 1279 // LocalFrame or another class around there.
1370 PreviewsState previews_state_; 1280 PreviewsState previews_state_;
1371 1281
1372 // Effective connection type when the document of this frame was fetched. 1282 // Effective connection type when the document of this frame was fetched.
1373 // TODO(sclittle): Consider moving this into Blink to be owned and managed by 1283 // TODO(sclittle): Consider moving this into Blink to be owned and managed by
1374 // LocalFrame or another class around there. 1284 // LocalFrame or another class around there.
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1418 mojo::AssociatedBinding<blink::mojom::EngagementClient> engagement_binding_; 1328 mojo::AssociatedBinding<blink::mojom::EngagementClient> engagement_binding_;
1419 mojo::Binding<mojom::Frame> frame_binding_; 1329 mojo::Binding<mojom::Frame> frame_binding_;
1420 mojo::AssociatedBinding<mojom::HostZoom> host_zoom_binding_; 1330 mojo::AssociatedBinding<mojom::HostZoom> host_zoom_binding_;
1421 mojo::AssociatedBinding<mojom::FrameBindingsControl> 1331 mojo::AssociatedBinding<mojom::FrameBindingsControl>
1422 frame_bindings_control_binding_; 1332 frame_bindings_control_binding_;
1423 mojom::FrameHostInterfaceBrokerPtr frame_host_interface_broker_; 1333 mojom::FrameHostInterfaceBrokerPtr frame_host_interface_broker_;
1424 1334
1425 // Indicates whether |didAccessInitialDocument| was called. 1335 // Indicates whether |didAccessInitialDocument| was called.
1426 bool has_accessed_initial_document_; 1336 bool has_accessed_initial_document_;
1427 1337
1338 // Creates various media clients.
1339 MediaFactory media_factory_;
1340
1428 AssociatedInterfaceRegistryImpl associated_interfaces_; 1341 AssociatedInterfaceRegistryImpl associated_interfaces_;
1429 std::unique_ptr<AssociatedInterfaceProviderImpl> 1342 std::unique_ptr<AssociatedInterfaceProviderImpl>
1430 remote_associated_interfaces_; 1343 remote_associated_interfaces_;
1431 1344
1432 // TODO(dcheng): Remove these members. 1345 // TODO(dcheng): Remove these members.
1433 bool committed_first_load_ = false; 1346 bool committed_first_load_ = false;
1434 bool name_changed_before_first_commit_ = false; 1347 bool name_changed_before_first_commit_ = false;
1435 1348
1436 bool browser_side_navigation_pending_ = false; 1349 bool browser_side_navigation_pending_ = false;
1437 1350
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1476 std::vector<media::RoutingTokenCallback> pending_routing_token_callbacks_; 1389 std::vector<media::RoutingTokenCallback> pending_routing_token_callbacks_;
1477 1390
1478 base::WeakPtrFactory<RenderFrameImpl> weak_factory_; 1391 base::WeakPtrFactory<RenderFrameImpl> weak_factory_;
1479 1392
1480 DISALLOW_COPY_AND_ASSIGN(RenderFrameImpl); 1393 DISALLOW_COPY_AND_ASSIGN(RenderFrameImpl);
1481 }; 1394 };
1482 1395
1483 } // namespace content 1396 } // namespace content
1484 1397
1485 #endif // CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ 1398 #endif // CONTENT_RENDERER_RENDER_FRAME_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698