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

Side by Side Diff: content/renderer/render_view_impl.cc

Issue 264773002: Start moving WebUserMediaClient on the chromium side to be per frame instead of view. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 6 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "content/renderer/render_view_impl.h" 5 #include "content/renderer/render_view_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 #include "content/renderer/gpu/render_widget_compositor.h" 82 #include "content/renderer/gpu/render_widget_compositor.h"
83 #include "content/renderer/history_controller.h" 83 #include "content/renderer/history_controller.h"
84 #include "content/renderer/history_serialization.h" 84 #include "content/renderer/history_serialization.h"
85 #include "content/renderer/idle_user_detector.h" 85 #include "content/renderer/idle_user_detector.h"
86 #include "content/renderer/ime_event_guard.h" 86 #include "content/renderer/ime_event_guard.h"
87 #include "content/renderer/input/input_handler_manager.h" 87 #include "content/renderer/input/input_handler_manager.h"
88 #include "content/renderer/input_tag_speech_dispatcher.h" 88 #include "content/renderer/input_tag_speech_dispatcher.h"
89 #include "content/renderer/internal_document_state_data.h" 89 #include "content/renderer/internal_document_state_data.h"
90 #include "content/renderer/load_progress_tracker.h" 90 #include "content/renderer/load_progress_tracker.h"
91 #include "content/renderer/media/audio_device_factory.h" 91 #include "content/renderer/media/audio_device_factory.h"
92 #include "content/renderer/media/audio_renderer_mixer_manager.h"
93 #include "content/renderer/media/media_stream_dependency_factory.h" 92 #include "content/renderer/media/media_stream_dependency_factory.h"
94 #include "content/renderer/media/media_stream_dispatcher.h" 93 #include "content/renderer/media/media_stream_dispatcher.h"
95 #include "content/renderer/media/media_stream_impl.h"
96 #include "content/renderer/media/midi_dispatcher.h" 94 #include "content/renderer/media/midi_dispatcher.h"
97 #include "content/renderer/media/render_media_log.h"
98 #include "content/renderer/media/video_capture_impl_manager.h" 95 #include "content/renderer/media/video_capture_impl_manager.h"
99 #include "content/renderer/media/webmediaplayer_impl.h"
100 #include "content/renderer/media/webmediaplayer_ms.h"
101 #include "content/renderer/media/webmediaplayer_params.h"
102 #include "content/renderer/memory_benchmarking_extension.h" 96 #include "content/renderer/memory_benchmarking_extension.h"
103 #include "content/renderer/mhtml_generator.h" 97 #include "content/renderer/mhtml_generator.h"
104 #include "content/renderer/push_messaging_dispatcher.h" 98 #include "content/renderer/push_messaging_dispatcher.h"
105 #include "content/renderer/render_frame_impl.h" 99 #include "content/renderer/render_frame_impl.h"
106 #include "content/renderer/render_process.h" 100 #include "content/renderer/render_process.h"
107 #include "content/renderer/render_thread_impl.h" 101 #include "content/renderer/render_thread_impl.h"
108 #include "content/renderer/render_view_impl_params.h" 102 #include "content/renderer/render_view_impl_params.h"
109 #include "content/renderer/render_view_mouse_lock_dispatcher.h" 103 #include "content/renderer/render_view_mouse_lock_dispatcher.h"
110 #include "content/renderer/render_widget_fullscreen_pepper.h" 104 #include "content/renderer/render_widget_fullscreen_pepper.h"
111 #include "content/renderer/renderer_webapplicationcachehost_impl.h" 105 #include "content/renderer/renderer_webapplicationcachehost_impl.h"
112 #include "content/renderer/resizing_mode_selector.h" 106 #include "content/renderer/resizing_mode_selector.h"
113 #include "content/renderer/savable_resources.h" 107 #include "content/renderer/savable_resources.h"
114 #include "content/renderer/skia_benchmarking_extension.h" 108 #include "content/renderer/skia_benchmarking_extension.h"
115 #include "content/renderer/speech_recognition_dispatcher.h" 109 #include "content/renderer/speech_recognition_dispatcher.h"
116 #include "content/renderer/stats_collection_controller.h" 110 #include "content/renderer/stats_collection_controller.h"
117 #include "content/renderer/stats_collection_observer.h" 111 #include "content/renderer/stats_collection_observer.h"
118 #include "content/renderer/text_input_client_observer.h" 112 #include "content/renderer/text_input_client_observer.h"
119 #include "content/renderer/v8_value_converter_impl.h" 113 #include "content/renderer/v8_value_converter_impl.h"
120 #include "content/renderer/web_ui_extension.h" 114 #include "content/renderer/web_ui_extension.h"
121 #include "content/renderer/web_ui_extension_data.h" 115 #include "content/renderer/web_ui_extension_data.h"
122 #include "content/renderer/web_ui_mojo.h" 116 #include "content/renderer/web_ui_mojo.h"
123 #include "content/renderer/websharedworker_proxy.h" 117 #include "content/renderer/websharedworker_proxy.h"
124 #include "media/audio/audio_output_device.h" 118 #include "media/audio/audio_output_device.h"
125 #include "media/base/audio_renderer_mixer_input.h"
126 #include "media/base/filter_collection.h" 119 #include "media/base/filter_collection.h"
127 #include "media/base/media_switches.h" 120 #include "media/base/media_switches.h"
128 #include "media/filters/audio_renderer_impl.h" 121 #include "media/filters/audio_renderer_impl.h"
129 #include "media/filters/gpu_video_accelerator_factories.h" 122 #include "media/filters/gpu_video_accelerator_factories.h"
130 #include "net/base/data_url.h" 123 #include "net/base/data_url.h"
131 #include "net/base/escape.h" 124 #include "net/base/escape.h"
132 #include "net/base/net_errors.h" 125 #include "net/base/net_errors.h"
133 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" 126 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
134 #include "net/http/http_util.h" 127 #include "net/http/http_util.h"
135 #include "third_party/WebKit/public/platform/WebCString.h" 128 #include "third_party/WebKit/public/platform/WebCString.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 #include "third_party/WebKit/public/web/WebPluginContainer.h" 171 #include "third_party/WebKit/public/web/WebPluginContainer.h"
179 #include "third_party/WebKit/public/web/WebPluginDocument.h" 172 #include "third_party/WebKit/public/web/WebPluginDocument.h"
180 #include "third_party/WebKit/public/web/WebRange.h" 173 #include "third_party/WebKit/public/web/WebRange.h"
181 #include "third_party/WebKit/public/web/WebScriptSource.h" 174 #include "third_party/WebKit/public/web/WebScriptSource.h"
182 #include "third_party/WebKit/public/web/WebSearchableFormData.h" 175 #include "third_party/WebKit/public/web/WebSearchableFormData.h"
183 #include "third_party/WebKit/public/web/WebSecurityOrigin.h" 176 #include "third_party/WebKit/public/web/WebSecurityOrigin.h"
184 #include "third_party/WebKit/public/web/WebSecurityPolicy.h" 177 #include "third_party/WebKit/public/web/WebSecurityPolicy.h"
185 #include "third_party/WebKit/public/web/WebSerializedScriptValue.h" 178 #include "third_party/WebKit/public/web/WebSerializedScriptValue.h"
186 #include "third_party/WebKit/public/web/WebSettings.h" 179 #include "third_party/WebKit/public/web/WebSettings.h"
187 #include "third_party/WebKit/public/web/WebUserGestureIndicator.h" 180 #include "third_party/WebKit/public/web/WebUserGestureIndicator.h"
188 #include "third_party/WebKit/public/web/WebUserMediaClient.h"
189 #include "third_party/WebKit/public/web/WebView.h" 181 #include "third_party/WebKit/public/web/WebView.h"
190 #include "third_party/WebKit/public/web/WebWindowFeatures.h" 182 #include "third_party/WebKit/public/web/WebWindowFeatures.h"
191 #include "third_party/WebKit/public/web/default/WebRenderTheme.h" 183 #include "third_party/WebKit/public/web/default/WebRenderTheme.h"
192 #include "ui/base/clipboard/clipboard.h" 184 #include "ui/base/clipboard/clipboard.h"
193 #include "ui/base/ui_base_switches_util.h" 185 #include "ui/base/ui_base_switches_util.h"
194 #include "ui/events/latency_info.h" 186 #include "ui/events/latency_info.h"
195 #include "ui/gfx/native_widget_types.h" 187 #include "ui/gfx/native_widget_types.h"
196 #include "ui/gfx/point.h" 188 #include "ui/gfx/point.h"
197 #include "ui/gfx/rect.h" 189 #include "ui/gfx/rect.h"
198 #include "ui/gfx/rect_conversions.h" 190 #include "ui/gfx/rect_conversions.h"
199 #include "ui/gfx/size_conversions.h" 191 #include "ui/gfx/size_conversions.h"
200 #include "ui/shell_dialogs/selected_file_info.h" 192 #include "ui/shell_dialogs/selected_file_info.h"
201 #include "v8/include/v8.h" 193 #include "v8/include/v8.h"
202 #include "webkit/child/weburlresponse_extradata_impl.h" 194 #include "webkit/child/weburlresponse_extradata_impl.h"
203 195
204 #if defined(OS_ANDROID) 196 #if defined(OS_ANDROID)
205 #include <cpu-features.h> 197 #include <cpu-features.h>
206 198
207 #include "content/common/gpu/client/context_provider_command_buffer.h"
208 #include "content/renderer/android/address_detector.h" 199 #include "content/renderer/android/address_detector.h"
209 #include "content/renderer/android/content_detector.h" 200 #include "content/renderer/android/content_detector.h"
210 #include "content/renderer/android/email_detector.h" 201 #include "content/renderer/android/email_detector.h"
211 #include "content/renderer/android/phone_number_detector.h" 202 #include "content/renderer/android/phone_number_detector.h"
212 #include "content/renderer/android/synchronous_compositor_factory.h"
213 #include "content/renderer/media/android/renderer_media_player_manager.h" 203 #include "content/renderer/media/android/renderer_media_player_manager.h"
214 #include "content/renderer/media/android/stream_texture_factory_impl.h"
215 #include "content/renderer/media/android/webmediaplayer_android.h"
216 #include "net/android/network_library.h" 204 #include "net/android/network_library.h"
217 #include "skia/ext/platform_canvas.h" 205 #include "skia/ext/platform_canvas.h"
218 #include "third_party/WebKit/public/platform/WebFloatPoint.h" 206 #include "third_party/WebKit/public/platform/WebFloatPoint.h"
219 #include "third_party/WebKit/public/platform/WebFloatRect.h" 207 #include "third_party/WebKit/public/platform/WebFloatRect.h"
220 #include "third_party/WebKit/public/web/WebHitTestResult.h" 208 #include "third_party/WebKit/public/web/WebHitTestResult.h"
221 #include "ui/gfx/rect_f.h" 209 #include "ui/gfx/rect_f.h"
222 210
223 #elif defined(OS_WIN) 211 #elif defined(OS_WIN)
224 // TODO(port): these files are currently Windows only because they concern: 212 // TODO(port): these files are currently Windows only because they concern:
225 // * theming 213 // * theming
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 using blink::WebFormElement; 252 using blink::WebFormElement;
265 using blink::WebFrame; 253 using blink::WebFrame;
266 using blink::WebGestureEvent; 254 using blink::WebGestureEvent;
267 using blink::WebHistoryItem; 255 using blink::WebHistoryItem;
268 using blink::WebHTTPBody; 256 using blink::WebHTTPBody;
269 using blink::WebIconURL; 257 using blink::WebIconURL;
270 using blink::WebImage; 258 using blink::WebImage;
271 using blink::WebInputElement; 259 using blink::WebInputElement;
272 using blink::WebInputEvent; 260 using blink::WebInputEvent;
273 using blink::WebLocalFrame; 261 using blink::WebLocalFrame;
274 using blink::WebMediaPlayer;
275 using blink::WebMediaPlayerAction; 262 using blink::WebMediaPlayerAction;
276 using blink::WebMediaPlayerClient;
277 using blink::WebMouseEvent; 263 using blink::WebMouseEvent;
278 using blink::WebNavigationPolicy; 264 using blink::WebNavigationPolicy;
279 using blink::WebNavigationType; 265 using blink::WebNavigationType;
280 using blink::WebNode; 266 using blink::WebNode;
281 using blink::WebPageSerializer; 267 using blink::WebPageSerializer;
282 using blink::WebPageSerializerClient; 268 using blink::WebPageSerializerClient;
283 using blink::WebPeerConnection00Handler; 269 using blink::WebPeerConnection00Handler;
284 using blink::WebPeerConnection00HandlerClient; 270 using blink::WebPeerConnection00HandlerClient;
285 using blink::WebPeerConnectionHandler; 271 using blink::WebPeerConnectionHandler;
286 using blink::WebPeerConnectionHandlerClient; 272 using blink::WebPeerConnectionHandlerClient;
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after
668 #endif 654 #endif
669 cached_is_main_frame_pinned_to_left_(false), 655 cached_is_main_frame_pinned_to_left_(false),
670 cached_is_main_frame_pinned_to_right_(false), 656 cached_is_main_frame_pinned_to_right_(false),
671 has_scrolled_focused_editable_node_into_rect_(false), 657 has_scrolled_focused_editable_node_into_rect_(false),
672 push_messaging_dispatcher_(NULL), 658 push_messaging_dispatcher_(NULL),
673 geolocation_dispatcher_(NULL), 659 geolocation_dispatcher_(NULL),
674 input_tag_speech_dispatcher_(NULL), 660 input_tag_speech_dispatcher_(NULL),
675 speech_recognition_dispatcher_(NULL), 661 speech_recognition_dispatcher_(NULL),
676 media_stream_dispatcher_(NULL), 662 media_stream_dispatcher_(NULL),
677 browser_plugin_manager_(NULL), 663 browser_plugin_manager_(NULL),
678 media_stream_client_(NULL),
679 web_user_media_client_(NULL),
680 midi_dispatcher_(NULL), 664 midi_dispatcher_(NULL),
681 devtools_agent_(NULL), 665 devtools_agent_(NULL),
682 accessibility_mode_(AccessibilityModeOff), 666 accessibility_mode_(AccessibilityModeOff),
683 renderer_accessibility_(NULL), 667 renderer_accessibility_(NULL),
684 mouse_lock_dispatcher_(NULL), 668 mouse_lock_dispatcher_(NULL),
685 #if defined(OS_ANDROID) 669 #if defined(OS_ANDROID)
686 expected_content_intent_id_(0), 670 expected_content_intent_id_(0),
687 media_player_manager_(NULL), 671 media_player_manager_(NULL),
688 #endif 672 #endif
689 #if defined(OS_WIN) 673 #if defined(OS_WIN)
(...skipping 1319 matching lines...) Expand 10 before | Expand all | Expand 10 after
2009 void RenderViewImpl::initializeLayerTreeView() { 1993 void RenderViewImpl::initializeLayerTreeView() {
2010 RenderWidget::initializeLayerTreeView(); 1994 RenderWidget::initializeLayerTreeView();
2011 RenderWidgetCompositor* rwc = compositor(); 1995 RenderWidgetCompositor* rwc = compositor();
2012 if (!rwc || !webview() || !webview()->devToolsAgent()) 1996 if (!rwc || !webview() || !webview()->devToolsAgent())
2013 return; 1997 return;
2014 webview()->devToolsAgent()->setLayerTreeId(rwc->GetLayerTreeId()); 1998 webview()->devToolsAgent()->setLayerTreeId(rwc->GetLayerTreeId());
2015 } 1999 }
2016 2000
2017 // blink::WebFrameClient ----------------------------------------------------- 2001 // blink::WebFrameClient -----------------------------------------------------
2018 2002
2019 blink::WebMediaPlayer* RenderViewImpl::CreateMediaPlayer(
2020 RenderFrame* render_frame,
2021 blink::WebLocalFrame* frame,
2022 const blink::WebURL& url,
2023 blink::WebMediaPlayerClient* client) {
2024 FOR_EACH_OBSERVER(
2025 RenderViewObserver, observers_, WillCreateMediaPlayer(frame, client));
2026
2027 WebMediaPlayer* player = CreateWebMediaPlayerForMediaStream(frame, url,
2028 client);
2029 if (player)
2030 return player;
2031
2032 #if defined(OS_ANDROID)
2033 return CreateAndroidWebMediaPlayer(frame, url, client);
2034 #else
2035 WebMediaPlayerParams params(
2036 base::Bind(&ContentRendererClient::DeferMediaLoad,
2037 base::Unretained(GetContentClient()->renderer()),
2038 static_cast<RenderFrame*>(render_frame)),
2039 RenderThreadImpl::current()->GetAudioRendererMixerManager()->CreateInput(
2040 routing_id_, render_frame->GetRoutingID()));
2041 return new WebMediaPlayerImpl(frame, client, AsWeakPtr(), params);
2042 #endif // defined(OS_ANDROID)
2043 }
2044
2045 void RenderViewImpl::Repaint(const gfx::Size& size) { 2003 void RenderViewImpl::Repaint(const gfx::Size& size) {
2046 OnRepaint(size); 2004 OnRepaint(size);
2047 } 2005 }
2048 2006
2049 void RenderViewImpl::SetEditCommandForNextKeyEvent(const std::string& name, 2007 void RenderViewImpl::SetEditCommandForNextKeyEvent(const std::string& name,
2050 const std::string& value) { 2008 const std::string& value) {
2051 EditCommands edit_commands; 2009 EditCommands edit_commands;
2052 edit_commands.push_back(EditCommand(name, value)); 2010 edit_commands.push_back(EditCommand(name, value));
2053 OnSetEditCommandsForNextKeyEvent(edit_commands); 2011 OnSetEditCommandsForNextKeyEvent(edit_commands);
2054 } 2012 }
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
2355 Send(new ViewHostMsg_DidContentsPreferredSizeChange(routing_id_, 2313 Send(new ViewHostMsg_DidContentsPreferredSizeChange(routing_id_,
2356 preferred_size_)); 2314 preferred_size_));
2357 } 2315 }
2358 2316
2359 BrowserPluginManager* RenderViewImpl::GetBrowserPluginManager() { 2317 BrowserPluginManager* RenderViewImpl::GetBrowserPluginManager() {
2360 if (!browser_plugin_manager_.get()) 2318 if (!browser_plugin_manager_.get())
2361 browser_plugin_manager_ = BrowserPluginManager::Create(this); 2319 browser_plugin_manager_ = BrowserPluginManager::Create(this);
2362 return browser_plugin_manager_.get(); 2320 return browser_plugin_manager_.get();
2363 } 2321 }
2364 2322
2365 bool RenderViewImpl::InitializeMediaStreamClient() {
2366 if (media_stream_client_)
2367 return true;
2368
2369 if (!RenderThreadImpl::current()) // Will be NULL during unit tests.
2370 return false;
2371
2372 #if defined(OS_ANDROID)
2373 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableWebRTC))
2374 return false;
2375 #endif
2376
2377 #if defined(ENABLE_WEBRTC)
2378 if (!media_stream_dispatcher_)
2379 media_stream_dispatcher_ = new MediaStreamDispatcher(this);
2380
2381 MediaStreamImpl* media_stream_impl = new MediaStreamImpl(
2382 this,
2383 media_stream_dispatcher_,
2384 RenderThreadImpl::current()->GetMediaStreamDependencyFactory());
2385 media_stream_client_ = media_stream_impl;
2386 web_user_media_client_ = media_stream_impl;
2387 return true;
2388 #else
2389 return false;
2390 #endif
2391 }
2392
2393 void RenderViewImpl::UpdateScrollState(WebFrame* frame) { 2323 void RenderViewImpl::UpdateScrollState(WebFrame* frame) {
2394 WebSize offset = frame->scrollOffset(); 2324 WebSize offset = frame->scrollOffset();
2395 WebSize minimum_offset = frame->minimumScrollOffset(); 2325 WebSize minimum_offset = frame->minimumScrollOffset();
2396 WebSize maximum_offset = frame->maximumScrollOffset(); 2326 WebSize maximum_offset = frame->maximumScrollOffset();
2397 2327
2398 bool is_pinned_to_left = offset.width <= minimum_offset.width; 2328 bool is_pinned_to_left = offset.width <= minimum_offset.width;
2399 bool is_pinned_to_right = offset.width >= maximum_offset.width; 2329 bool is_pinned_to_right = offset.width >= maximum_offset.width;
2400 2330
2401 if (is_pinned_to_left != cached_is_main_frame_pinned_to_left_ || 2331 if (is_pinned_to_left != cached_is_main_frame_pinned_to_left_ ||
2402 is_pinned_to_right != cached_is_main_frame_pinned_to_right_) { 2332 is_pinned_to_right != cached_is_main_frame_pinned_to_right_) {
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
2587 } 2517 }
2588 2518
2589 void RenderViewImpl::DidStartLoading() { 2519 void RenderViewImpl::DidStartLoading() {
2590 main_render_frame_->didStartLoading(true); 2520 main_render_frame_->didStartLoading(true);
2591 } 2521 }
2592 2522
2593 void RenderViewImpl::DidStopLoading() { 2523 void RenderViewImpl::DidStopLoading() {
2594 main_render_frame_->didStopLoading(); 2524 main_render_frame_->didStopLoading();
2595 } 2525 }
2596 2526
2597 void RenderViewImpl::DidPlay(blink::WebMediaPlayer* player) {
2598 Send(new ViewHostMsg_MediaPlayingNotification(routing_id_,
2599 reinterpret_cast<int64>(player),
2600 player->hasVideo(),
2601 player->hasAudio()));
2602 }
2603
2604 void RenderViewImpl::DidPause(blink::WebMediaPlayer* player) {
2605 Send(new ViewHostMsg_MediaPausedNotification(
2606 routing_id_, reinterpret_cast<int64>(player)));
2607 }
2608
2609 void RenderViewImpl::PlayerGone(blink::WebMediaPlayer* player) {
2610 DidPause(player);
2611 }
2612
2613 void RenderViewImpl::SyncNavigationState() { 2527 void RenderViewImpl::SyncNavigationState() {
2614 if (!webview()) 2528 if (!webview())
2615 return; 2529 return;
2616 SendUpdateState(history_controller_->GetCurrentEntry()); 2530 SendUpdateState(history_controller_->GetCurrentEntry());
2617 } 2531 }
2618 2532
2619 GURL RenderViewImpl::GetLoadingUrl(blink::WebFrame* frame) const { 2533 GURL RenderViewImpl::GetLoadingUrl(blink::WebFrame* frame) const {
2620 WebDataSource* ds = frame->dataSource(); 2534 WebDataSource* ds = frame->dataSource();
2621 if (ds->hasUnreachableURL()) 2535 if (ds->hasUnreachableURL())
2622 return ds->unreachableURL(); 2536 return ds->unreachableURL();
(...skipping 1319 matching lines...) Expand 10 before | Expand all | Expand 10 after
3942 blink::WebPageVisibilityStateVisible; 3856 blink::WebPageVisibilityStateVisible;
3943 blink::WebPageVisibilityState override_state = current_state; 3857 blink::WebPageVisibilityState override_state = current_state;
3944 // TODO(jam): move this method to WebFrameClient. 3858 // TODO(jam): move this method to WebFrameClient.
3945 if (GetContentClient()->renderer()-> 3859 if (GetContentClient()->renderer()->
3946 ShouldOverridePageVisibilityState(main_render_frame_.get(), 3860 ShouldOverridePageVisibilityState(main_render_frame_.get(),
3947 &override_state)) 3861 &override_state))
3948 return override_state; 3862 return override_state;
3949 return current_state; 3863 return current_state;
3950 } 3864 }
3951 3865
3952 blink::WebUserMediaClient* RenderViewImpl::userMediaClient() {
3953 // This can happen in tests, in which case it's OK to return NULL.
3954 if (!InitializeMediaStreamClient())
3955 return NULL;
3956
3957 return web_user_media_client_;
3958 }
3959
3960 blink::WebMIDIClient* RenderViewImpl::webMIDIClient() { 3866 blink::WebMIDIClient* RenderViewImpl::webMIDIClient() {
3961 if (!midi_dispatcher_) 3867 if (!midi_dispatcher_)
3962 midi_dispatcher_ = new MidiDispatcher(this); 3868 midi_dispatcher_ = new MidiDispatcher(this);
3963 return midi_dispatcher_; 3869 return midi_dispatcher_;
3964 } 3870 }
3965 3871
3966 blink::WebPushClient* RenderViewImpl::webPushClient() { 3872 blink::WebPushClient* RenderViewImpl::webPushClient() {
3967 if (!push_messaging_dispatcher_) 3873 if (!push_messaging_dispatcher_)
3968 push_messaging_dispatcher_ = new PushMessagingDispatcher(this); 3874 push_messaging_dispatcher_ = new PushMessagingDispatcher(this);
3969 return push_messaging_dispatcher_; 3875 return push_messaging_dispatcher_;
3970 } 3876 }
3971 3877
3972 void RenderViewImpl::draggableRegionsChanged() { 3878 void RenderViewImpl::draggableRegionsChanged() {
3973 FOR_EACH_OBSERVER( 3879 FOR_EACH_OBSERVER(
3974 RenderViewObserver, 3880 RenderViewObserver,
3975 observers_, 3881 observers_,
3976 DraggableRegionsChanged(webview()->mainFrame())); 3882 DraggableRegionsChanged(webview()->mainFrame()));
3977 } 3883 }
3978 3884
3979 WebMediaPlayer* RenderViewImpl::CreateWebMediaPlayerForMediaStream(
3980 WebFrame* frame,
3981 const blink::WebURL& url,
3982 WebMediaPlayerClient* client) {
3983 #if defined(ENABLE_WEBRTC)
3984 if (!InitializeMediaStreamClient()) {
3985 LOG(ERROR) << "Failed to initialize MediaStreamClient";
3986 return NULL;
3987 }
3988 if (media_stream_client_->IsMediaStream(url)) {
3989 #if defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL)
3990 bool found_neon =
3991 (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) != 0;
3992 UMA_HISTOGRAM_BOOLEAN("Platform.WebRtcNEONFound", found_neon);
3993 #endif // defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL)
3994 return new WebMediaPlayerMS(frame, client, AsWeakPtr(),
3995 media_stream_client_, new RenderMediaLog());
3996 }
3997 #endif // defined(ENABLE_WEBRTC)
3998 return NULL;
3999 }
4000
4001 #if defined(OS_ANDROID) 3885 #if defined(OS_ANDROID)
4002 WebContentDetectionResult RenderViewImpl::detectContentAround( 3886 WebContentDetectionResult RenderViewImpl::detectContentAround(
4003 const WebHitTestResult& touch_hit) { 3887 const WebHitTestResult& touch_hit) {
4004 DCHECK(!touch_hit.isNull()); 3888 DCHECK(!touch_hit.isNull());
4005 DCHECK(!touch_hit.node().isNull()); 3889 DCHECK(!touch_hit.node().isNull());
4006 DCHECK(touch_hit.node().isTextNode()); 3890 DCHECK(touch_hit.node().isTextNode());
4007 3891
4008 // Process the position with all the registered content detectors until 3892 // Process the position with all the registered content detectors until
4009 // a match is found. Priority is provided by their relative order. 3893 // a match is found. Priority is provided by their relative order.
4010 for (ContentDetectorList::const_iterator it = content_detectors_.begin(); 3894 for (ContentDetectorList::const_iterator it = content_detectors_.begin();
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
4054 date_time_picker_client_.reset( 3938 date_time_picker_client_.reset(
4055 new RendererDateTimePicker(this, params, completion)); 3939 new RendererDateTimePicker(this, params, completion));
4056 return date_time_picker_client_->Open(); 3940 return date_time_picker_client_->Open();
4057 } 3941 }
4058 3942
4059 void RenderViewImpl::DismissDateTimeDialog() { 3943 void RenderViewImpl::DismissDateTimeDialog() {
4060 DCHECK(date_time_picker_client_); 3944 DCHECK(date_time_picker_client_);
4061 date_time_picker_client_.reset(NULL); 3945 date_time_picker_client_.reset(NULL);
4062 } 3946 }
4063 3947
4064 WebMediaPlayer* RenderViewImpl::CreateAndroidWebMediaPlayer(
4065 WebFrame* frame,
4066 const blink::WebURL& url,
4067 WebMediaPlayerClient* client) {
4068 GpuChannelHost* gpu_channel_host =
4069 RenderThreadImpl::current()->EstablishGpuChannelSync(
4070 CAUSE_FOR_GPU_LAUNCH_VIDEODECODEACCELERATOR_INITIALIZE);
4071 if (!gpu_channel_host) {
4072 LOG(ERROR) << "Failed to establish GPU channel for media player";
4073 return NULL;
4074 }
4075
4076 scoped_refptr<StreamTextureFactory> stream_texture_factory;
4077 if (UsingSynchronousRendererCompositor()) {
4078 SynchronousCompositorFactory* factory =
4079 SynchronousCompositorFactory::GetInstance();
4080 stream_texture_factory = factory->CreateStreamTextureFactory(routing_id_);
4081 } else {
4082 scoped_refptr<webkit::gpu::ContextProviderWebContext> context_provider =
4083 RenderThreadImpl::current()->SharedMainThreadContextProvider();
4084
4085 if (!context_provider.get()) {
4086 LOG(ERROR) << "Failed to get context3d for media player";
4087 return NULL;
4088 }
4089
4090 stream_texture_factory = StreamTextureFactoryImpl::Create(
4091 context_provider, gpu_channel_host, routing_id_);
4092 }
4093
4094 return new WebMediaPlayerAndroid(
4095 frame,
4096 client,
4097 AsWeakPtr(),
4098 media_player_manager_,
4099 stream_texture_factory,
4100 RenderThreadImpl::current()->GetMediaThreadMessageLoopProxy(),
4101 new RenderMediaLog());
4102 }
4103
4104 #endif // defined(OS_ANDROID) 3948 #endif // defined(OS_ANDROID)
4105 3949
4106 #if defined(OS_MACOSX) 3950 #if defined(OS_MACOSX)
4107 void RenderViewImpl::OnSelectPopupMenuItem(int selected_index) { 3951 void RenderViewImpl::OnSelectPopupMenuItem(int selected_index) {
4108 if (external_popup_menu_ == NULL) 3952 if (external_popup_menu_ == NULL)
4109 return; 3953 return;
4110 external_popup_menu_->DidSelectItem(selected_index); 3954 external_popup_menu_->DidSelectItem(selected_index);
4111 external_popup_menu_.reset(); 3955 external_popup_menu_.reset();
4112 } 3956 }
4113 #endif 3957 #endif
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
4284 4128
4285 void RenderViewImpl::EnableAutoResizeForTesting(const gfx::Size& min_size, 4129 void RenderViewImpl::EnableAutoResizeForTesting(const gfx::Size& min_size,
4286 const gfx::Size& max_size) { 4130 const gfx::Size& max_size) {
4287 OnEnableAutoResize(min_size, max_size); 4131 OnEnableAutoResize(min_size, max_size);
4288 } 4132 }
4289 4133
4290 void RenderViewImpl::DisableAutoResizeForTesting(const gfx::Size& new_size) { 4134 void RenderViewImpl::DisableAutoResizeForTesting(const gfx::Size& new_size) {
4291 OnDisableAutoResize(new_size); 4135 OnDisableAutoResize(new_size);
4292 } 4136 }
4293 4137
4294 void RenderViewImpl::SetMediaStreamClientForTesting(
4295 MediaStreamClient* media_stream_client) {
4296 DCHECK(!media_stream_client_);
4297 DCHECK(!web_user_media_client_);
4298 media_stream_client_ = media_stream_client;
4299 }
4300
4301 void RenderViewImpl::OnReleaseDisambiguationPopupBitmap( 4138 void RenderViewImpl::OnReleaseDisambiguationPopupBitmap(
4302 const cc::SharedBitmapId& id) { 4139 const cc::SharedBitmapId& id) {
4303 BitmapMap::iterator it = disambiguation_bitmaps_.find(id); 4140 BitmapMap::iterator it = disambiguation_bitmaps_.find(id);
4304 DCHECK(it != disambiguation_bitmaps_.end()); 4141 DCHECK(it != disambiguation_bitmaps_.end());
4305 delete it->second; 4142 delete it->second;
4306 disambiguation_bitmaps_.erase(it); 4143 disambiguation_bitmaps_.erase(it);
4307 } 4144 }
4308 4145
4309 void RenderViewImpl::DidCommitCompositorFrame() { 4146 void RenderViewImpl::DidCommitCompositorFrame() {
4310 RenderWidget::DidCommitCompositorFrame(); 4147 RenderWidget::DidCommitCompositorFrame();
(...skipping 19 matching lines...) Expand all
4330 std::vector<gfx::Size> sizes; 4167 std::vector<gfx::Size> sizes;
4331 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes); 4168 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes);
4332 if (!url.isEmpty()) 4169 if (!url.isEmpty())
4333 urls.push_back( 4170 urls.push_back(
4334 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes)); 4171 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes));
4335 } 4172 }
4336 SendUpdateFaviconURL(urls); 4173 SendUpdateFaviconURL(urls);
4337 } 4174 }
4338 4175
4339 } // namespace content 4176 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_view_impl.h ('k') | content/shell/renderer/test_runner/WebFrameTestProxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698