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

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

Issue 14175015: Allow VideoCaptureImpl to suspend/resume frame delivery to its client. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: code review Created 7 years, 8 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
« no previous file with comments | « content/renderer/media/video_capture_impl_manager.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
OLDNEW
« no previous file with comments | « content/renderer/media/video_capture_impl_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698