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 | 9 |
10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 #include "content/renderer/load_progress_tracker.h" | 87 #include "content/renderer/load_progress_tracker.h" |
88 #include "content/renderer/media/audio_device_factory.h" | 88 #include "content/renderer/media/audio_device_factory.h" |
89 #include "content/renderer/media/audio_renderer_mixer_manager.h" | 89 #include "content/renderer/media/audio_renderer_mixer_manager.h" |
90 #include "content/renderer/media/media_stream_dependency_factory.h" | 90 #include "content/renderer/media/media_stream_dependency_factory.h" |
91 #include "content/renderer/media/media_stream_dispatcher.h" | 91 #include "content/renderer/media/media_stream_dispatcher.h" |
92 #include "content/renderer/media/media_stream_impl.h" | 92 #include "content/renderer/media/media_stream_impl.h" |
93 #include "content/renderer/media/render_media_log.h" | 93 #include "content/renderer/media/render_media_log.h" |
94 #include "content/renderer/media/renderer_audio_output_device.h" | 94 #include "content/renderer/media/renderer_audio_output_device.h" |
95 #include "content/renderer/media/renderer_gpu_video_decoder_factories.h" | 95 #include "content/renderer/media/renderer_gpu_video_decoder_factories.h" |
96 #include "content/renderer/media/rtc_peer_connection_handler.h" | 96 #include "content/renderer/media/rtc_peer_connection_handler.h" |
| 97 #include "content/renderer/media/video_capture_impl_manager.h" |
97 #include "content/renderer/mhtml_generator.h" | 98 #include "content/renderer/mhtml_generator.h" |
98 #include "content/renderer/notification_provider.h" | 99 #include "content/renderer/notification_provider.h" |
99 #include "content/renderer/pepper/pepper_plugin_delegate_impl.h" | 100 #include "content/renderer/pepper/pepper_plugin_delegate_impl.h" |
100 #include "content/renderer/plugin_channel_host.h" | 101 #include "content/renderer/plugin_channel_host.h" |
101 #include "content/renderer/render_process.h" | 102 #include "content/renderer/render_process.h" |
102 #include "content/renderer/render_thread_impl.h" | 103 #include "content/renderer/render_thread_impl.h" |
103 #include "content/renderer/render_view_impl_params.h" | 104 #include "content/renderer/render_view_impl_params.h" |
104 #include "content/renderer/render_view_mouse_lock_dispatcher.h" | 105 #include "content/renderer/render_view_mouse_lock_dispatcher.h" |
105 #include "content/renderer/render_widget_fullscreen_pepper.h" | 106 #include "content/renderer/render_widget_fullscreen_pepper.h" |
106 #include "content/renderer/renderer_date_time_picker.h" | 107 #include "content/renderer/renderer_date_time_picker.h" |
(...skipping 5745 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5852 void RenderViewImpl::OnWasHidden() { | 5853 void RenderViewImpl::OnWasHidden() { |
5853 RenderWidget::OnWasHidden(); | 5854 RenderWidget::OnWasHidden(); |
5854 | 5855 |
5855 #if defined(OS_ANDROID) | 5856 #if defined(OS_ANDROID) |
5856 // Inform WebMediaPlayerManagerAndroid to release all media player resources. | 5857 // Inform WebMediaPlayerManagerAndroid to release all media player resources. |
5857 // unless some audio is playing. | 5858 // unless some audio is playing. |
5858 // If something is in progress the resource will not be freed, it will | 5859 // If something is in progress the resource will not be freed, it will |
5859 // only be freed once the tab is destroyed or if the user navigates away | 5860 // only be freed once the tab is destroyed or if the user navigates away |
5860 // via WebMediaPlayerAndroid::Destroy | 5861 // via WebMediaPlayerAndroid::Destroy |
5861 media_player_manager_->ReleaseMediaResources(); | 5862 media_player_manager_->ReleaseMediaResources(); |
| 5863 |
| 5864 #if defined(ENABLE_WEBRTC) |
| 5865 RenderThreadImpl::current()->video_capture_impl_manager()-> |
| 5866 SuspendDevices(true); |
| 5867 #endif |
5862 #endif | 5868 #endif |
5863 | 5869 |
5864 if (webview()) { | 5870 if (webview()) { |
5865 webview()->settings()->setMinimumTimerInterval( | 5871 webview()->settings()->setMinimumTimerInterval( |
5866 webkit_glue::kBackgroundTabTimerInterval); | 5872 webkit_glue::kBackgroundTabTimerInterval); |
5867 webview()->setVisibilityState(visibilityState(), false); | 5873 webview()->setVisibilityState(visibilityState(), false); |
5868 } | 5874 } |
5869 | 5875 |
5870 // Inform PPAPI plugins that their page is no longer visible. | 5876 // Inform PPAPI plugins that their page is no longer visible. |
5871 pepper_helper_->PageVisibilityChanged(false); | 5877 pepper_helper_->PageVisibilityChanged(false); |
5872 | 5878 |
5873 #if defined(OS_MACOSX) | 5879 #if defined(OS_MACOSX) |
5874 // Inform NPAPI plugins that their container is no longer visible. | 5880 // Inform NPAPI plugins that their container is no longer visible. |
5875 std::set<WebPluginDelegateProxy*>::iterator plugin_it; | 5881 std::set<WebPluginDelegateProxy*>::iterator plugin_it; |
5876 for (plugin_it = plugin_delegates_.begin(); | 5882 for (plugin_it = plugin_delegates_.begin(); |
5877 plugin_it != plugin_delegates_.end(); ++plugin_it) { | 5883 plugin_it != plugin_delegates_.end(); ++plugin_it) { |
5878 (*plugin_it)->SetContainerVisibility(false); | 5884 (*plugin_it)->SetContainerVisibility(false); |
5879 } | 5885 } |
5880 #endif // OS_MACOSX | 5886 #endif // OS_MACOSX |
5881 } | 5887 } |
5882 | 5888 |
5883 void RenderViewImpl::OnWasShown(bool needs_repainting) { | 5889 void RenderViewImpl::OnWasShown(bool needs_repainting) { |
5884 RenderWidget::OnWasShown(needs_repainting); | 5890 RenderWidget::OnWasShown(needs_repainting); |
5885 | 5891 |
| 5892 #if defined(OS_ANDROID) && defined(ENABLE_WEBRTC) |
| 5893 RenderThreadImpl::current()->video_capture_impl_manager()-> |
| 5894 SuspendDevices(false); |
| 5895 #endif |
| 5896 |
5886 if (webview()) { | 5897 if (webview()) { |
5887 webview()->settings()->setMinimumTimerInterval( | 5898 webview()->settings()->setMinimumTimerInterval( |
5888 webkit_glue::kForegroundTabTimerInterval); | 5899 webkit_glue::kForegroundTabTimerInterval); |
5889 webview()->setVisibilityState(visibilityState(), false); | 5900 webview()->setVisibilityState(visibilityState(), false); |
5890 } | 5901 } |
5891 | 5902 |
5892 // Inform PPAPI plugins that their page is visible. | 5903 // Inform PPAPI plugins that their page is visible. |
5893 pepper_helper_->PageVisibilityChanged(true); | 5904 pepper_helper_->PageVisibilityChanged(true); |
5894 | 5905 |
5895 #if defined(OS_MACOSX) | 5906 #if defined(OS_MACOSX) |
(...skipping 707 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6603 WebURL url = icon_urls[i].iconURL(); | 6614 WebURL url = icon_urls[i].iconURL(); |
6604 if (!url.isEmpty()) | 6615 if (!url.isEmpty()) |
6605 urls.push_back(FaviconURL(url, | 6616 urls.push_back(FaviconURL(url, |
6606 ToFaviconType(icon_urls[i].iconType()))); | 6617 ToFaviconType(icon_urls[i].iconType()))); |
6607 } | 6618 } |
6608 SendUpdateFaviconURL(urls); | 6619 SendUpdateFaviconURL(urls); |
6609 } | 6620 } |
6610 | 6621 |
6611 | 6622 |
6612 } // namespace content | 6623 } // namespace content |
OLD | NEW |