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

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

Issue 278353003: Make RendererMediaPlayerManager a RenderFrameObserver. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix VIDEO_HOLE DidCommitCompositorFrame. 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 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 #include "v8/include/v8.h" 192 #include "v8/include/v8.h"
193 #include "webkit/child/weburlresponse_extradata_impl.h" 193 #include "webkit/child/weburlresponse_extradata_impl.h"
194 194
195 #if defined(OS_ANDROID) 195 #if defined(OS_ANDROID)
196 #include <cpu-features.h> 196 #include <cpu-features.h>
197 197
198 #include "content/renderer/android/address_detector.h" 198 #include "content/renderer/android/address_detector.h"
199 #include "content/renderer/android/content_detector.h" 199 #include "content/renderer/android/content_detector.h"
200 #include "content/renderer/android/email_detector.h" 200 #include "content/renderer/android/email_detector.h"
201 #include "content/renderer/android/phone_number_detector.h" 201 #include "content/renderer/android/phone_number_detector.h"
202 #include "content/renderer/media/android/renderer_media_player_manager.h"
203 #include "net/android/network_library.h" 202 #include "net/android/network_library.h"
204 #include "skia/ext/platform_canvas.h" 203 #include "skia/ext/platform_canvas.h"
205 #include "third_party/WebKit/public/platform/WebFloatPoint.h" 204 #include "third_party/WebKit/public/platform/WebFloatPoint.h"
206 #include "third_party/WebKit/public/platform/WebFloatRect.h" 205 #include "third_party/WebKit/public/platform/WebFloatRect.h"
207 #include "third_party/WebKit/public/web/WebHitTestResult.h" 206 #include "third_party/WebKit/public/web/WebHitTestResult.h"
208 #include "ui/gfx/rect_f.h" 207 #include "ui/gfx/rect_f.h"
209 208
210 #elif defined(OS_WIN) 209 #elif defined(OS_WIN)
211 // TODO(port): these files are currently Windows only because they concern: 210 // TODO(port): these files are currently Windows only because they concern:
212 // * theming 211 // * theming
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after
654 speech_recognition_dispatcher_(NULL), 653 speech_recognition_dispatcher_(NULL),
655 media_stream_dispatcher_(NULL), 654 media_stream_dispatcher_(NULL),
656 browser_plugin_manager_(NULL), 655 browser_plugin_manager_(NULL),
657 midi_dispatcher_(NULL), 656 midi_dispatcher_(NULL),
658 devtools_agent_(NULL), 657 devtools_agent_(NULL),
659 accessibility_mode_(AccessibilityModeOff), 658 accessibility_mode_(AccessibilityModeOff),
660 renderer_accessibility_(NULL), 659 renderer_accessibility_(NULL),
661 mouse_lock_dispatcher_(NULL), 660 mouse_lock_dispatcher_(NULL),
662 #if defined(OS_ANDROID) 661 #if defined(OS_ANDROID)
663 expected_content_intent_id_(0), 662 expected_content_intent_id_(0),
664 media_player_manager_(NULL),
665 #endif 663 #endif
666 #if defined(OS_WIN) 664 #if defined(OS_WIN)
667 focused_plugin_id_(-1), 665 focused_plugin_id_(-1),
668 #endif 666 #endif
669 #if defined(ENABLE_PLUGINS) 667 #if defined(ENABLE_PLUGINS)
670 plugin_find_handler_(NULL), 668 plugin_find_handler_(NULL),
671 focused_pepper_plugin_(NULL), 669 focused_pepper_plugin_(NULL),
672 pepper_last_mouse_event_target_(NULL), 670 pepper_last_mouse_event_target_(NULL),
673 #endif 671 #endif
674 enumeration_completion_id_(0), 672 enumeration_completion_id_(0),
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
781 #if defined(ENABLE_WEBRTC) 779 #if defined(ENABLE_WEBRTC)
782 if (!media_stream_dispatcher_) 780 if (!media_stream_dispatcher_)
783 media_stream_dispatcher_ = new MediaStreamDispatcher(this); 781 media_stream_dispatcher_ = new MediaStreamDispatcher(this);
784 #endif 782 #endif
785 783
786 new MHTMLGenerator(this); 784 new MHTMLGenerator(this);
787 #if defined(OS_MACOSX) 785 #if defined(OS_MACOSX)
788 new TextInputClientObserver(this); 786 new TextInputClientObserver(this);
789 #endif // defined(OS_MACOSX) 787 #endif // defined(OS_MACOSX)
790 788
791 #if defined(OS_ANDROID)
792 media_player_manager_ = new RendererMediaPlayerManager(this);
793 #endif
794
795 // The next group of objects all implement RenderViewObserver, so are deleted 789 // The next group of objects all implement RenderViewObserver, so are deleted
796 // along with the RenderView automatically. 790 // along with the RenderView automatically.
797 devtools_agent_ = new DevToolsAgent(this); 791 devtools_agent_ = new DevToolsAgent(this);
798 if (RenderWidgetCompositor* rwc = compositor()) { 792 if (RenderWidgetCompositor* rwc = compositor()) {
799 webview()->devToolsAgent()->setLayerTreeId(rwc->GetLayerTreeId()); 793 webview()->devToolsAgent()->setLayerTreeId(rwc->GetLayerTreeId());
800 } 794 }
801 mouse_lock_dispatcher_ = new RenderViewMouseLockDispatcher(this); 795 mouse_lock_dispatcher_ = new RenderViewMouseLockDispatcher(this);
802 796
803 history_controller_.reset(new HistoryController(this)); 797 history_controller_.reset(new HistoryController(this));
804 798
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
1134 IPC_MESSAGE_HANDLER(ViewMsg_WindowSnapshotCompleted, 1128 IPC_MESSAGE_HANDLER(ViewMsg_WindowSnapshotCompleted,
1135 OnWindowSnapshotCompleted) 1129 OnWindowSnapshotCompleted)
1136 IPC_MESSAGE_HANDLER(ViewMsg_SelectWordAroundCaret, OnSelectWordAroundCaret) 1130 IPC_MESSAGE_HANDLER(ViewMsg_SelectWordAroundCaret, OnSelectWordAroundCaret)
1137 #if defined(OS_ANDROID) 1131 #if defined(OS_ANDROID)
1138 IPC_MESSAGE_HANDLER(InputMsg_ActivateNearestFindResult, 1132 IPC_MESSAGE_HANDLER(InputMsg_ActivateNearestFindResult,
1139 OnActivateNearestFindResult) 1133 OnActivateNearestFindResult)
1140 IPC_MESSAGE_HANDLER(ViewMsg_FindMatchRects, OnFindMatchRects) 1134 IPC_MESSAGE_HANDLER(ViewMsg_FindMatchRects, OnFindMatchRects)
1141 IPC_MESSAGE_HANDLER(ViewMsg_SelectPopupMenuItems, OnSelectPopupMenuItems) 1135 IPC_MESSAGE_HANDLER(ViewMsg_SelectPopupMenuItems, OnSelectPopupMenuItems)
1142 IPC_MESSAGE_HANDLER(ViewMsg_UpdateTopControlsState, 1136 IPC_MESSAGE_HANDLER(ViewMsg_UpdateTopControlsState,
1143 OnUpdateTopControlsState) 1137 OnUpdateTopControlsState)
1144 IPC_MESSAGE_HANDLER(ViewMsg_PauseVideo, OnPauseVideo)
1145 IPC_MESSAGE_HANDLER(ViewMsg_ExtractSmartClipData, OnExtractSmartClipData) 1138 IPC_MESSAGE_HANDLER(ViewMsg_ExtractSmartClipData, OnExtractSmartClipData)
1146 #elif defined(OS_MACOSX) 1139 #elif defined(OS_MACOSX)
1147 IPC_MESSAGE_HANDLER(ViewMsg_PluginImeCompositionCompleted, 1140 IPC_MESSAGE_HANDLER(ViewMsg_PluginImeCompositionCompleted,
1148 OnPluginImeCompositionCompleted) 1141 OnPluginImeCompositionCompleted)
1149 IPC_MESSAGE_HANDLER(ViewMsg_SelectPopupMenuItem, OnSelectPopupMenuItem) 1142 IPC_MESSAGE_HANDLER(ViewMsg_SelectPopupMenuItem, OnSelectPopupMenuItem)
1150 IPC_MESSAGE_HANDLER(ViewMsg_SetInLiveResize, OnSetInLiveResize) 1143 IPC_MESSAGE_HANDLER(ViewMsg_SetInLiveResize, OnSetInLiveResize)
1151 IPC_MESSAGE_HANDLER(ViewMsg_SetWindowVisibility, OnSetWindowVisibility) 1144 IPC_MESSAGE_HANDLER(ViewMsg_SetWindowVisibility, OnSetWindowVisibility)
1152 IPC_MESSAGE_HANDLER(ViewMsg_WindowFrameChanged, OnWindowFrameChanged) 1145 IPC_MESSAGE_HANDLER(ViewMsg_WindowFrameChanged, OnWindowFrameChanged)
1153 #endif 1146 #endif
1154 // Adding a new message? Add platform independent ones first, then put the 1147 // Adding a new message? Add platform independent ones first, then put the
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
1313 void RenderViewImpl::OnSetInLiveResize(bool in_live_resize) { 1306 void RenderViewImpl::OnSetInLiveResize(bool in_live_resize) {
1314 if (!webview()) 1307 if (!webview())
1315 return; 1308 return;
1316 if (in_live_resize) 1309 if (in_live_resize)
1317 webview()->willStartLiveResize(); 1310 webview()->willStartLiveResize();
1318 else 1311 else
1319 webview()->willEndLiveResize(); 1312 webview()->willEndLiveResize();
1320 } 1313 }
1321 #endif 1314 #endif
1322 1315
1323 #if defined(OS_ANDROID)
1324 void RenderViewImpl::OnPauseVideo() {
1325 // Inform RendererMediaPlayerManager to release all video player resources.
1326 // If something is in progress the resource will not be freed, it will
1327 // only be freed once the tab is destroyed or if the user navigates away
1328 // via WebMediaPlayerAndroid::Destroy.
dcheng 2014/05/23 21:19:41 Is it worth moving this comment to the new IPC han
xhwang 2014/05/23 23:34:35 Done.
1329 media_player_manager_->ReleaseVideoResources();
1330 }
1331 #endif
1332
1333 /////////////////////////////////////////////////////////////////////////////// 1316 ///////////////////////////////////////////////////////////////////////////////
1334 1317
1335 // Sends the current history state to the browser so it will be saved before we 1318 // Sends the current history state to the browser so it will be saved before we
1336 // navigate to a new page. 1319 // navigate to a new page.
1337 void RenderViewImpl::UpdateSessionHistory(WebFrame* frame) { 1320 void RenderViewImpl::UpdateSessionHistory(WebFrame* frame) {
1338 // If we have a valid page ID at this point, then it corresponds to the page 1321 // If we have a valid page ID at this point, then it corresponds to the page
1339 // we are navigating away from. Otherwise, this is the first navigation, so 1322 // we are navigating away from. Otherwise, this is the first navigation, so
1340 // there is no past session history to record. 1323 // there is no past session history to record.
1341 if (page_id_ == -1) 1324 if (page_id_ == -1)
1342 return; 1325 return;
(...skipping 2744 matching lines...) Expand 10 before | Expand all | Expand 10 after
4087 std::vector<gfx::Size> sizes; 4070 std::vector<gfx::Size> sizes;
4088 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes); 4071 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes);
4089 if (!url.isEmpty()) 4072 if (!url.isEmpty())
4090 urls.push_back( 4073 urls.push_back(
4091 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes)); 4074 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes));
4092 } 4075 }
4093 SendUpdateFaviconURL(urls); 4076 SendUpdateFaviconURL(urls);
4094 } 4077 }
4095 4078
4096 } // namespace content 4079 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698