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

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

Issue 2905613003: Extract media code from RenderFrameImpl (Closed)
Patch Set: Feedback 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/unique_name_helper.h" 39 #include "content/common/unique_name_helper.h"
41 #include "content/common/url_loader_factory.mojom.h" 40 #include "content/common/url_loader_factory.mojom.h"
42 #include "content/public/common/console_message_level.h" 41 #include "content/public/common/console_message_level.h"
43 #include "content/public/common/javascript_dialog_type.h" 42 #include "content/public/common/javascript_dialog_type.h"
44 #include "content/public/common/previews_state.h" 43 #include "content/public/common/previews_state.h"
45 #include "content/public/common/referrer.h" 44 #include "content/public/common/referrer.h"
45 #include "content/public/common/renderer_preferences.h"
46 #include "content/public/common/request_context_type.h" 46 #include "content/public/common/request_context_type.h"
47 #include "content/public/common/stop_find_action.h" 47 #include "content/public/common/stop_find_action.h"
48 #include "content/public/renderer/render_frame.h" 48 #include "content/public/renderer/render_frame.h"
49 #include "content/renderer/frame_blame_context.h" 49 #include "content/renderer/frame_blame_context.h"
50 #include "content/renderer/media/media_factory.h"
50 #include "content/renderer/mojo/blink_interface_provider_impl.h" 51 #include "content/renderer/mojo/blink_interface_provider_impl.h"
51 #include "content/renderer/renderer_webcookiejar_impl.h" 52 #include "content/renderer/renderer_webcookiejar_impl.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 587 matching lines...) Expand 10 before | Expand all | Expand 10 after
762 void PepperInstanceDeleted(PepperPluginInstanceImpl* instance); 741 void PepperInstanceDeleted(PepperPluginInstanceImpl* instance);
763 742
764 // Notification that the given plugin is focused or unfocused. 743 // Notification that the given plugin is focused or unfocused.
765 void PepperFocusChanged(PepperPluginInstanceImpl* instance, bool focused); 744 void PepperFocusChanged(PepperPluginInstanceImpl* instance, bool focused);
766 745
767 void PepperStartsPlayback(PepperPluginInstanceImpl* instance); 746 void PepperStartsPlayback(PepperPluginInstanceImpl* instance);
768 void PepperStopsPlayback(PepperPluginInstanceImpl* instance); 747 void PepperStopsPlayback(PepperPluginInstanceImpl* instance);
769 void OnSetPepperVolume(int32_t pp_instance, double volume); 748 void OnSetPepperVolume(int32_t pp_instance, double volume);
770 #endif // ENABLE_PLUGINS 749 #endif // ENABLE_PLUGINS
771 750
751 const RendererPreferences& GetRendererPreferences() const;
752
772 #if defined(OS_MACOSX) 753 #if defined(OS_MACOSX)
773 void OnCopyToFindPboard(); 754 void OnCopyToFindPboard();
774 #endif 755 #endif
775 756
776 // Dispatches the current state of selection on the webpage to the browser if 757 // Dispatches the current state of selection on the webpage to the browser if
777 // it has changed. 758 // it has changed.
778 // TODO(varunjain): delete this method once we figure out how to keep 759 // TODO(varunjain): delete this method once we figure out how to keep
779 // selection handles in sync with the webpage. 760 // selection handles in sync with the webpage.
780 void SyncSelectionIfRequired(); 761 void SyncSelectionIfRequired();
781 762
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
1043 void HandleJavascriptExecutionResult(const base::string16& javascript, 1024 void HandleJavascriptExecutionResult(const base::string16& javascript,
1044 int id, 1025 int id,
1045 bool notify_result, 1026 bool notify_result,
1046 v8::Local<v8::Value> result); 1027 v8::Local<v8::Value> result);
1047 1028
1048 // Initializes |web_user_media_client_|. If this fails, because it wasn't 1029 // Initializes |web_user_media_client_|. If this fails, because it wasn't
1049 // possible to create a MediaStreamClient (e.g., WebRTC is disabled), then 1030 // possible to create a MediaStreamClient (e.g., WebRTC is disabled), then
1050 // |web_user_media_client_| will remain NULL. 1031 // |web_user_media_client_| will remain NULL.
1051 void InitializeUserMediaClient(); 1032 void InitializeUserMediaClient();
1052 1033
1053 blink::WebMediaPlayer* CreateWebMediaPlayerForMediaStream(
1054 blink::WebMediaPlayerClient* client,
1055 const blink::WebString& sink_id,
1056 const blink::WebSecurityOrigin& security_origin);
1057
1058 // Creates a factory object used for creating audio and video renderers.
1059 std::unique_ptr<MediaStreamRendererFactory> CreateRendererFactory();
1060
1061 // Does preparation for the navigation to |url|. 1034 // Does preparation for the navigation to |url|.
1062 void PrepareRenderViewForNavigation( 1035 void PrepareRenderViewForNavigation(
1063 const GURL& url, 1036 const GURL& url,
1064 const RequestNavigationParams& request_params); 1037 const RequestNavigationParams& request_params);
1065 1038
1066 // PlzNavigate 1039 // PlzNavigate
1067 // Sends a FrameHostMsg_BeginNavigation to the browser 1040 // Sends a FrameHostMsg_BeginNavigation to the browser
1068 void BeginNavigation(const NavigationPolicyInfo& info); 1041 void BeginNavigation(const NavigationPolicyInfo& info);
1069 1042
1070 // Loads a data url. 1043 // Loads a data url.
(...skipping 24 matching lines...) Expand all
1095 // Returns a new NavigationState populated with the navigation information 1068 // Returns a new NavigationState populated with the navigation information
1096 // saved in OnNavigate(). 1069 // saved in OnNavigate().
1097 NavigationState* CreateNavigationStateFromPending(); 1070 NavigationState* CreateNavigationStateFromPending();
1098 1071
1099 // Sets the NavigationState on the DocumentState based on 1072 // Sets the NavigationState on the DocumentState based on
1100 // the value of |pending_navigation_params_|. 1073 // the value of |pending_navigation_params_|.
1101 void UpdateNavigationState(DocumentState* document_state, 1074 void UpdateNavigationState(DocumentState* document_state,
1102 bool was_within_same_page, 1075 bool was_within_same_page,
1103 bool content_initiated); 1076 bool content_initiated);
1104 1077
1105 #if defined(OS_ANDROID)
1106 RendererMediaPlayerManager* GetMediaPlayerManager();
1107 #endif
1108
1109 bool AreSecureCodecsSupported(); 1078 bool AreSecureCodecsSupported();
1110 1079
1111 #if BUILDFLAG(ENABLE_MOJO_MEDIA)
1112 service_manager::mojom::InterfaceProvider* GetMediaInterfaceProvider();
1113 #endif
1114
1115 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
1116 media::mojom::RemoterFactory* GetRemoterFactory();
1117 #endif
1118
1119 media::CdmFactory* GetCdmFactory();
1120 media::DecoderFactory* GetDecoderFactory();
1121
1122 #if BUILDFLAG(ENABLE_PLUGINS) 1080 #if BUILDFLAG(ENABLE_PLUGINS)
1123 void HandlePepperImeCommit(const base::string16& text); 1081 void HandlePepperImeCommit(const base::string16& text);
1124 #endif // ENABLE_PLUGINS 1082 #endif // ENABLE_PLUGINS
1125 1083
1126 void RegisterMojoInterfaces(); 1084 void RegisterMojoInterfaces();
1127 1085
1128 // Connect to an interface provided by the service registry. 1086 // Connect to an interface provided by the service registry.
1129 template <typename Interface> 1087 template <typename Interface>
1130 void GetInterface(mojo::InterfaceRequest<Interface> request); 1088 void GetInterface(mojo::InterfaceRequest<Interface> request);
1131 1089
1132 void OnHostZoomClientRequest(mojom::HostZoomAssociatedRequest request); 1090 void OnHostZoomClientRequest(mojom::HostZoomAssociatedRequest request);
1133 1091
1134 // Returns the media delegate for WebMediaPlayer usage. If
1135 // |media_player_delegate_| is NULL, one is created.
1136 media::RendererWebMediaPlayerDelegate* GetWebMediaPlayerDelegate();
1137
1138 // Called to get the WebPlugin to handle find requests in the document. 1092 // Called to get the WebPlugin to handle find requests in the document.
1139 // Returns nullptr if there is no such WebPlugin. 1093 // Returns nullptr if there is no such WebPlugin.
1140 blink::WebPlugin* GetWebPluginForFind(); 1094 blink::WebPlugin* GetWebPluginForFind();
1141 1095
1142 // Sends a reply to the current find operation handling if it was a 1096 // Sends a reply to the current find operation handling if it was a
1143 // synchronous find request. 1097 // synchronous find request.
1144 void SendFindReply(int request_id, 1098 void SendFindReply(int request_id,
1145 int match_count, 1099 int match_count,
1146 int ordinal, 1100 int ordinal,
1147 const blink::WebRect& selection_rect, 1101 const blink::WebRect& selection_rect,
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
1294 // of handling a InputMsg_SelectRange IPC. 1248 // of handling a InputMsg_SelectRange IPC.
1295 bool handling_select_range_; 1249 bool handling_select_range_;
1296 1250
1297 // The next group of objects all implement RenderFrameObserver, so are deleted 1251 // The next group of objects all implement RenderFrameObserver, so are deleted
1298 // along with the RenderFrame automatically. This is why we just store weak 1252 // along with the RenderFrame automatically. This is why we just store weak
1299 // references. 1253 // references.
1300 1254
1301 // Destroyed via the RenderFrameObserver::OnDestruct() mechanism. 1255 // Destroyed via the RenderFrameObserver::OnDestruct() mechanism.
1302 UserMediaClientImpl* web_user_media_client_; 1256 UserMediaClientImpl* web_user_media_client_;
1303 1257
1304 // EncryptedMediaClient attached to this frame; lazily initialized.
1305 std::unique_ptr<media::WebEncryptedMediaClientImpl>
1306 web_encrypted_media_client_;
1307
1308 // The media permission dispatcher attached to this frame. 1258 // The media permission dispatcher attached to this frame.
1309 std::unique_ptr<MediaPermissionDispatcher> media_permission_dispatcher_; 1259 std::unique_ptr<MediaPermissionDispatcher> media_permission_dispatcher_;
1310 1260
1311 #if BUILDFLAG(ENABLE_MOJO_MEDIA)
1312 // The media interface provider attached to this frame, lazily initialized.
1313 std::unique_ptr<MediaInterfaceProvider> media_interface_provider_;
1314 #endif
1315
1316 #if defined(OS_ANDROID)
1317 // Manages all media players and sessions in this render frame for
1318 // communicating with the real media player and sessions in the
1319 // browser process. It's okay to use raw pointers since they're both
1320 // RenderFrameObservers.
1321 RendererMediaPlayerManager* media_player_manager_;
1322 #endif
1323
1324 media::SurfaceManager* media_surface_manager_;
1325
1326 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
1327 // Lazy-bound pointer to the RemoterFactory service in the browser
1328 // process. Always use the GetRemoterFactory() accessor instead of this.
1329 media::mojom::RemoterFactoryPtr remoter_factory_;
1330
1331 // An observer for the remoting sink availability that is used by
1332 // media::RemotingCdmFactory to initialize media::RemotingSourceImpl. Created
1333 // in the constructor of RenderFrameImpl to make sure
1334 // media::RemotingSourceImpl be intialized with correct availability info.
1335 // Own by media::RemotingCdmFactory after it is created.
1336 std::unique_ptr<media::remoting::SinkAvailabilityObserver>
1337 remoting_sink_observer_;
1338 #endif
1339
1340 // The CDM and decoder factory attached to this frame, lazily initialized.
1341 std::unique_ptr<media::CdmFactory> cdm_factory_;
1342 std::unique_ptr<media::DecoderFactory> decoder_factory_;
1343
1344 // Media resource cache, lazily initialized.
1345 linked_ptr<media::UrlIndex> url_index_;
1346
1347 // The devtools agent for this frame; only created for main frame and 1261 // The devtools agent for this frame; only created for main frame and
1348 // local roots. 1262 // local roots.
1349 DevToolsAgent* devtools_agent_; 1263 DevToolsAgent* devtools_agent_;
1350 1264
1351 // The presentation dispatcher implementation attached to this frame, lazily 1265 // The presentation dispatcher implementation attached to this frame, lazily
1352 // initialized. 1266 // initialized.
1353 PresentationDispatcher* presentation_dispatcher_; 1267 PresentationDispatcher* presentation_dispatcher_;
1354 1268
1355 // The PushMessagingClient attached to this frame, lazily initialized. 1269 // The PushMessagingClient attached to this frame, lazily initialized.
1356 PushMessagingClient* push_messaging_client_; 1270 PushMessagingClient* push_messaging_client_;
(...skipping 21 matching lines...) Expand all
1378 1292
1379 // The current accessibility mode. 1293 // The current accessibility mode.
1380 AccessibilityMode accessibility_mode_; 1294 AccessibilityMode accessibility_mode_;
1381 1295
1382 // Only valid if |accessibility_mode_| has |AccessibilityMode::kWebContents| 1296 // Only valid if |accessibility_mode_| has |AccessibilityMode::kWebContents|
1383 // flag set. 1297 // flag set.
1384 RenderAccessibilityImpl* render_accessibility_; 1298 RenderAccessibilityImpl* render_accessibility_;
1385 1299
1386 std::unique_ptr<RelatedAppsFetcher> related_apps_fetcher_; 1300 std::unique_ptr<RelatedAppsFetcher> related_apps_fetcher_;
1387 1301
1388 // Manages play, pause notifications for WebMediaPlayer implementations; its
1389 // lifetime is tied to the RenderFrame via the RenderFrameObserver interface.
1390 media::RendererWebMediaPlayerDelegate* media_player_delegate_;
1391
1392 // The PreviewsState of this RenderFrame that indicates which Previews can 1302 // The PreviewsState of this RenderFrame that indicates which Previews can
1393 // be used. The PreviewsState is a bitmask of potentially several Previews 1303 // be used. The PreviewsState is a bitmask of potentially several Previews
1394 // optimizations. 1304 // optimizations.
1395 // TODO(sclittle): Consider moving this into Blink to be owned and managed by 1305 // TODO(sclittle): Consider moving this into Blink to be owned and managed by
1396 // LocalFrame or another class around there. 1306 // LocalFrame or another class around there.
1397 PreviewsState previews_state_; 1307 PreviewsState previews_state_;
1398 1308
1399 // Effective connection type when the document of this frame was fetched. 1309 // Effective connection type when the document of this frame was fetched.
1400 // TODO(sclittle): Consider moving this into Blink to be owned and managed by 1310 // TODO(sclittle): Consider moving this into Blink to be owned and managed by
1401 // LocalFrame or another class around there. 1311 // LocalFrame or another class around there.
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1445 mojo::AssociatedBinding<blink::mojom::EngagementClient> engagement_binding_; 1355 mojo::AssociatedBinding<blink::mojom::EngagementClient> engagement_binding_;
1446 mojo::Binding<mojom::Frame> frame_binding_; 1356 mojo::Binding<mojom::Frame> frame_binding_;
1447 mojo::AssociatedBinding<mojom::HostZoom> host_zoom_binding_; 1357 mojo::AssociatedBinding<mojom::HostZoom> host_zoom_binding_;
1448 mojo::AssociatedBinding<mojom::FrameBindingsControl> 1358 mojo::AssociatedBinding<mojom::FrameBindingsControl>
1449 frame_bindings_control_binding_; 1359 frame_bindings_control_binding_;
1450 mojom::FrameHostInterfaceBrokerPtr frame_host_interface_broker_; 1360 mojom::FrameHostInterfaceBrokerPtr frame_host_interface_broker_;
1451 1361
1452 // Indicates whether |didAccessInitialDocument| was called. 1362 // Indicates whether |didAccessInitialDocument| was called.
1453 bool has_accessed_initial_document_; 1363 bool has_accessed_initial_document_;
1454 1364
1365 // Creates various media clients.
1366 MediaFactory media_factory_;
1367
1455 AssociatedInterfaceRegistryImpl associated_interfaces_; 1368 AssociatedInterfaceRegistryImpl associated_interfaces_;
1456 std::unique_ptr<AssociatedInterfaceProviderImpl> 1369 std::unique_ptr<AssociatedInterfaceProviderImpl>
1457 remote_associated_interfaces_; 1370 remote_associated_interfaces_;
1458 1371
1459 // TODO(dcheng): Remove these members. 1372 // TODO(dcheng): Remove these members.
1460 bool committed_first_load_ = false; 1373 bool committed_first_load_ = false;
1461 bool name_changed_before_first_commit_ = false; 1374 bool name_changed_before_first_commit_ = false;
1462 1375
1463 bool browser_side_navigation_pending_ = false; 1376 bool browser_side_navigation_pending_ = false;
1464 1377
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1503 std::vector<media::RoutingTokenCallback> pending_routing_token_callbacks_; 1416 std::vector<media::RoutingTokenCallback> pending_routing_token_callbacks_;
1504 1417
1505 base::WeakPtrFactory<RenderFrameImpl> weak_factory_; 1418 base::WeakPtrFactory<RenderFrameImpl> weak_factory_;
1506 1419
1507 DISALLOW_COPY_AND_ASSIGN(RenderFrameImpl); 1420 DISALLOW_COPY_AND_ASSIGN(RenderFrameImpl);
1508 }; 1421 };
1509 1422
1510 } // namespace content 1423 } // namespace content
1511 1424
1512 #endif // CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ 1425 #endif // CONTENT_RENDERER_RENDER_FRAME_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698