| OLD | NEW |
| 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 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 458 cached_has_main_frame_horizontal_scrollbar_(false), | 458 cached_has_main_frame_horizontal_scrollbar_(false), |
| 459 cached_has_main_frame_vertical_scrollbar_(false), | 459 cached_has_main_frame_vertical_scrollbar_(false), |
| 460 context_has_swapbuffers_complete_callback_(false), | 460 context_has_swapbuffers_complete_callback_(false), |
| 461 queried_for_swapbuffers_complete_callback_(false), | 461 queried_for_swapbuffers_complete_callback_(false), |
| 462 context_is_web_graphics_context_3d_command_buffer_impl_(false), | 462 context_is_web_graphics_context_3d_command_buffer_impl_(false), |
| 463 ALLOW_THIS_IN_INITIALIZER_LIST(cookie_jar_(this)), | 463 ALLOW_THIS_IN_INITIALIZER_LIST(cookie_jar_(this)), |
| 464 geolocation_dispatcher_(NULL), | 464 geolocation_dispatcher_(NULL), |
| 465 input_tag_speech_dispatcher_(NULL), | 465 input_tag_speech_dispatcher_(NULL), |
| 466 device_orientation_dispatcher_(NULL), | 466 device_orientation_dispatcher_(NULL), |
| 467 media_stream_dispatcher_(NULL), | 467 media_stream_dispatcher_(NULL), |
| 468 media_stream_impl_(NULL), |
| 468 p2p_socket_dispatcher_(NULL), | 469 p2p_socket_dispatcher_(NULL), |
| 469 devtools_agent_(NULL), | 470 devtools_agent_(NULL), |
| 470 renderer_accessibility_(NULL), | 471 renderer_accessibility_(NULL), |
| 471 mouse_lock_dispatcher_(NULL), | 472 mouse_lock_dispatcher_(NULL), |
| 472 session_storage_namespace_id_(session_storage_namespace_id), | 473 session_storage_namespace_id_(session_storage_namespace_id), |
| 473 handling_select_range_(false), | 474 handling_select_range_(false), |
| 474 #if defined(OS_WIN) | 475 #if defined(OS_WIN) |
| 475 focused_plugin_id_(-1), | 476 focused_plugin_id_(-1), |
| 476 #endif | 477 #endif |
| 477 guest_(guest), | 478 guest_(guest), |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 586 } | 587 } |
| 587 #endif | 588 #endif |
| 588 | 589 |
| 589 #ifndef NDEBUG | 590 #ifndef NDEBUG |
| 590 // Make sure we are no longer referenced by the ViewMap. | 591 // Make sure we are no longer referenced by the ViewMap. |
| 591 ViewMap* views = g_view_map.Pointer(); | 592 ViewMap* views = g_view_map.Pointer(); |
| 592 for (ViewMap::iterator it = views->begin(); it != views->end(); ++it) | 593 for (ViewMap::iterator it = views->begin(); it != views->end(); ++it) |
| 593 DCHECK_NE(this, it->second) << "Failed to call Close?"; | 594 DCHECK_NE(this, it->second) << "Failed to call Close?"; |
| 594 #endif | 595 #endif |
| 595 | 596 |
| 596 // MediaStreamImpl holds weak references to RenderViewObserver objects, | |
| 597 // ensure it's deleted before the observers. | |
| 598 media_stream_impl_ = NULL; | |
| 599 | |
| 600 FOR_EACH_OBSERVER(RenderViewObserver, observers_, RenderViewGone()); | 597 FOR_EACH_OBSERVER(RenderViewObserver, observers_, RenderViewGone()); |
| 601 FOR_EACH_OBSERVER(RenderViewObserver, observers_, OnDestruct()); | 598 FOR_EACH_OBSERVER(RenderViewObserver, observers_, OnDestruct()); |
| 602 } | 599 } |
| 603 | 600 |
| 604 /*static*/ | 601 /*static*/ |
| 605 RenderViewImpl* RenderViewImpl::FromWebView(WebView* webview) { | 602 RenderViewImpl* RenderViewImpl::FromWebView(WebView* webview) { |
| 606 ViewMap* views = g_view_map.Pointer(); | 603 ViewMap* views = g_view_map.Pointer(); |
| 607 ViewMap::iterator it = views->find(webview); | 604 ViewMap::iterator it = views->find(webview); |
| 608 return it == views->end() ? NULL : it->second; | 605 return it == views->end() ? NULL : it->second; |
| 609 } | 606 } |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 651 frame_name, | 648 frame_name, |
| 652 next_page_id, | 649 next_page_id, |
| 653 screen_info, | 650 screen_info, |
| 654 guest, | 651 guest, |
| 655 accessibility_mode); | 652 accessibility_mode); |
| 656 } | 653 } |
| 657 | 654 |
| 658 WebPeerConnectionHandler* RenderViewImpl::CreatePeerConnectionHandler( | 655 WebPeerConnectionHandler* RenderViewImpl::CreatePeerConnectionHandler( |
| 659 WebPeerConnectionHandlerClient* client) { | 656 WebPeerConnectionHandlerClient* client) { |
| 660 EnsureMediaStreamImpl(); | 657 EnsureMediaStreamImpl(); |
| 661 if (!media_stream_impl_.get()) | 658 if (!media_stream_impl_) |
| 662 return NULL; | 659 return NULL; |
| 663 return media_stream_impl_->CreatePeerConnectionHandler(client); | 660 return media_stream_impl_->CreatePeerConnectionHandler(client); |
| 664 } | 661 } |
| 665 | 662 |
| 666 WebPeerConnection00Handler* RenderViewImpl::CreatePeerConnectionHandlerJsep( | 663 WebPeerConnection00Handler* RenderViewImpl::CreatePeerConnectionHandlerJsep( |
| 667 WebPeerConnection00HandlerClient* client) { | 664 WebPeerConnection00HandlerClient* client) { |
| 668 EnsureMediaStreamImpl(); | 665 EnsureMediaStreamImpl(); |
| 669 if (!media_stream_impl_.get()) | 666 if (!media_stream_impl_) |
| 670 return NULL; | 667 return NULL; |
| 671 return media_stream_impl_->CreatePeerConnectionHandlerJsep(client); | 668 return media_stream_impl_->CreatePeerConnectionHandlerJsep(client); |
| 672 } | 669 } |
| 673 | 670 |
| 674 void RenderViewImpl::AddObserver(RenderViewObserver* observer) { | 671 void RenderViewImpl::AddObserver(RenderViewObserver* observer) { |
| 675 observers_.AddObserver(observer); | 672 observers_.AddObserver(observer); |
| 676 } | 673 } |
| 677 | 674 |
| 678 void RenderViewImpl::RemoveObserver(RenderViewObserver* observer) { | 675 void RenderViewImpl::RemoveObserver(RenderViewObserver* observer) { |
| 679 observer->RenderViewGone(); | 676 observer->RenderViewGone(); |
| (...skipping 1539 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2219 message_loop_factory->GetMessageLoop("GpuVideoDecoder"), | 2216 message_loop_factory->GetMessageLoop("GpuVideoDecoder"), |
| 2220 factories_loop, | 2217 factories_loop, |
| 2221 new RendererGpuVideoDecoderFactories( | 2218 new RendererGpuVideoDecoderFactories( |
| 2222 gpu_channel_host, factories_loop, context3d))); | 2219 gpu_channel_host, factories_loop, context3d))); |
| 2223 } | 2220 } |
| 2224 #endif | 2221 #endif |
| 2225 | 2222 |
| 2226 webkit_media::WebMediaPlayerImpl* media_player = | 2223 webkit_media::WebMediaPlayerImpl* media_player = |
| 2227 content::GetContentClient()->renderer()->OverrideCreateWebMediaPlayer( | 2224 content::GetContentClient()->renderer()->OverrideCreateWebMediaPlayer( |
| 2228 this, frame, client, AsWeakPtr(), collection, audio_source_provider, | 2225 this, frame, client, AsWeakPtr(), collection, audio_source_provider, |
| 2229 message_loop_factory, media_stream_impl_.get(), render_media_log); | 2226 message_loop_factory, media_stream_impl_, render_media_log); |
| 2230 #if defined(OS_ANDROID) | 2227 #if defined(OS_ANDROID) |
| 2231 // TODO(qinmin): Implement for android. | 2228 // TODO(qinmin): Implement for android. |
| 2232 // http://crbug.com/113218 | 2229 // http://crbug.com/113218 |
| 2233 #else | 2230 #else |
| 2234 if (!media_player) { | 2231 if (!media_player) { |
| 2235 media_player = new webkit_media::WebMediaPlayerImpl( | 2232 media_player = new webkit_media::WebMediaPlayerImpl( |
| 2236 frame, client, AsWeakPtr(), collection, audio_source_provider, | 2233 frame, client, AsWeakPtr(), collection, audio_source_provider, |
| 2237 message_loop_factory, media_stream_impl_.get(), render_media_log); | 2234 message_loop_factory, media_stream_impl_, render_media_log); |
| 2238 } | 2235 } |
| 2239 #endif | 2236 #endif |
| 2240 return media_player; | 2237 return media_player; |
| 2241 } | 2238 } |
| 2242 | 2239 |
| 2243 WebApplicationCacheHost* RenderViewImpl::createApplicationCacheHost( | 2240 WebApplicationCacheHost* RenderViewImpl::createApplicationCacheHost( |
| 2244 WebFrame* frame, WebApplicationCacheHostClient* client) { | 2241 WebFrame* frame, WebApplicationCacheHostClient* client) { |
| 2245 if (!frame || !frame->view()) | 2242 if (!frame || !frame->view()) |
| 2246 return NULL; | 2243 return NULL; |
| 2247 return new RendererWebApplicationCacheHostImpl( | 2244 return new RendererWebApplicationCacheHostImpl( |
| (...skipping 1051 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3299 | 3296 |
| 3300 #if defined(ENABLE_P2P_APIS) | 3297 #if defined(ENABLE_P2P_APIS) |
| 3301 if (!p2p_socket_dispatcher_) | 3298 if (!p2p_socket_dispatcher_) |
| 3302 p2p_socket_dispatcher_ = new content::P2PSocketDispatcher(this); | 3299 p2p_socket_dispatcher_ = new content::P2PSocketDispatcher(this); |
| 3303 #endif | 3300 #endif |
| 3304 | 3301 |
| 3305 #if defined(ENABLE_WEBRTC) | 3302 #if defined(ENABLE_WEBRTC) |
| 3306 if (!media_stream_dispatcher_) | 3303 if (!media_stream_dispatcher_) |
| 3307 media_stream_dispatcher_ = new MediaStreamDispatcher(this); | 3304 media_stream_dispatcher_ = new MediaStreamDispatcher(this); |
| 3308 | 3305 |
| 3309 if (!media_stream_impl_.get()) { | 3306 if (!media_stream_impl_) { |
| 3310 MediaStreamDependencyFactory* factory = new MediaStreamDependencyFactory(); | 3307 MediaStreamDependencyFactory* factory = new MediaStreamDependencyFactory(); |
| 3311 media_stream_impl_ = new MediaStreamImpl( | 3308 media_stream_impl_ = new MediaStreamImpl( |
| 3309 this, |
| 3312 media_stream_dispatcher_, | 3310 media_stream_dispatcher_, |
| 3313 p2p_socket_dispatcher_, | 3311 p2p_socket_dispatcher_, |
| 3314 RenderThreadImpl::current()->video_capture_impl_manager(), | 3312 RenderThreadImpl::current()->video_capture_impl_manager(), |
| 3315 factory); | 3313 factory); |
| 3316 } | 3314 } |
| 3317 #endif | 3315 #endif |
| 3318 } | 3316 } |
| 3319 | 3317 |
| 3320 void RenderViewImpl::didChangeContentsSize(WebFrame* frame, | 3318 void RenderViewImpl::didChangeContentsSize(WebFrame* frame, |
| 3321 const WebSize& size) { | 3319 const WebSize& size) { |
| (...skipping 1936 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5258 bool RenderViewImpl::WebWidgetHandlesCompositorScheduling() const { | 5256 bool RenderViewImpl::WebWidgetHandlesCompositorScheduling() const { |
| 5259 return !!RenderThreadImpl::current()->compositor_thread(); | 5257 return !!RenderThreadImpl::current()->compositor_thread(); |
| 5260 } | 5258 } |
| 5261 | 5259 |
| 5262 void RenderViewImpl::OnJavaBridgeInit() { | 5260 void RenderViewImpl::OnJavaBridgeInit() { |
| 5263 DCHECK(!java_bridge_dispatcher_.get()); | 5261 DCHECK(!java_bridge_dispatcher_.get()); |
| 5264 #if defined(ENABLE_JAVA_BRIDGE) | 5262 #if defined(ENABLE_JAVA_BRIDGE) |
| 5265 java_bridge_dispatcher_.reset(new JavaBridgeDispatcher(this)); | 5263 java_bridge_dispatcher_.reset(new JavaBridgeDispatcher(this)); |
| 5266 #endif | 5264 #endif |
| 5267 } | 5265 } |
| OLD | NEW |