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

Side by Side Diff: content/browser/web_contents/web_contents_impl.cc

Issue 1391893003: NOT FOR REVIEW: Aura on Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 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
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/browser/web_contents/web_contents_impl.h" 5 #include "content/browser/web_contents/web_contents_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 #include "third_party/skia/include/core/SkBitmap.h" 110 #include "third_party/skia/include/core/SkBitmap.h"
111 #include "ui/base/layout.h" 111 #include "ui/base/layout.h"
112 #include "ui/gfx/display.h" 112 #include "ui/gfx/display.h"
113 #include "ui/gfx/screen.h" 113 #include "ui/gfx/screen.h"
114 #include "ui/gl/gl_switches.h" 114 #include "ui/gl/gl_switches.h"
115 115
116 #if defined(ENABLE_BROWSER_CDMS) 116 #if defined(ENABLE_BROWSER_CDMS)
117 #include "content/browser/media/media_web_contents_observer.h" 117 #include "content/browser/media/media_web_contents_observer.h"
118 #endif 118 #endif
119 119
120 #if defined(OS_ANDROID) 120 #if defined(OS_ANDROID) &&!defined(USE_AURA)
121 #include "content/browser/android/content_video_view.h" 121 #include "content/browser/android/content_video_view.h"
122 #include "content/browser/android/date_time_chooser_android.h" 122 #include "content/browser/android/date_time_chooser_android.h"
123 #include "content/browser/android/media_players_observer.h" 123 #include "content/browser/android/media_players_observer.h"
124 #include "content/browser/media/android/media_session.h" 124 #include "content/browser/media/android/media_session.h"
125 #include "content/browser/web_contents/web_contents_android.h" 125 #include "content/browser/web_contents/web_contents_android.h"
126 #endif 126 #endif
127 127
128 #if defined(OS_MACOSX) 128 #if defined(OS_MACOSX)
129 #include "base/mac/foundation_util.h" 129 #include "base/mac/foundation_util.h"
130 #endif 130 #endif
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 BrowserAccessibilityStateImpl::GetInstance()->accessibility_mode()), 405 BrowserAccessibilityStateImpl::GetInstance()->accessibility_mode()),
406 virtual_keyboard_requested_(false), 406 virtual_keyboard_requested_(false),
407 loading_weak_factory_(this) { 407 loading_weak_factory_(this) {
408 frame_tree_.SetFrameRemoveListener( 408 frame_tree_.SetFrameRemoveListener(
409 base::Bind(&WebContentsImpl::OnFrameRemoved, 409 base::Bind(&WebContentsImpl::OnFrameRemoved,
410 base::Unretained(this))); 410 base::Unretained(this)));
411 #if defined(ENABLE_BROWSER_CDMS) 411 #if defined(ENABLE_BROWSER_CDMS)
412 media_web_contents_observer_.reset(new MediaWebContentsObserver(this)); 412 media_web_contents_observer_.reset(new MediaWebContentsObserver(this));
413 #endif 413 #endif
414 414
415 #if defined(OS_ANDROID) 415 #if defined(OS_ANDROID) && !defined(USE_AURA)
416 audio_state_provider_.reset(new MediaPlayersObserver(this)); 416 audio_state_provider_.reset(new MediaPlayersObserver(this));
no sievers 2015/10/20 19:24:22 use the android one
417 #else 417 #else
418 audio_state_provider_.reset(new AudioStreamMonitor(this)); 418 audio_state_provider_.reset(new AudioStreamMonitor(this));
419 #endif 419 #endif
420 } 420 }
421 421
422 WebContentsImpl::~WebContentsImpl() { 422 WebContentsImpl::~WebContentsImpl() {
423 is_being_destroyed_ = true; 423 is_being_destroyed_ = true;
424 424
425 // Delete all RFH pending shutdown, which will lead the corresponding RVH to 425 // Delete all RFH pending shutdown, which will lead the corresponding RVH to
426 // shutdown and be deleted as well. 426 // shutdown and be deleted as well.
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
653 OnBrowserPluginMessage(render_frame_host, 653 OnBrowserPluginMessage(render_frame_host,
654 message)) 654 message))
655 #endif 655 #endif
656 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateFaviconURL, OnUpdateFaviconURL) 656 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateFaviconURL, OnUpdateFaviconURL)
657 IPC_MESSAGE_HANDLER(ViewHostMsg_ShowValidationMessage, 657 IPC_MESSAGE_HANDLER(ViewHostMsg_ShowValidationMessage,
658 OnShowValidationMessage) 658 OnShowValidationMessage)
659 IPC_MESSAGE_HANDLER(ViewHostMsg_HideValidationMessage, 659 IPC_MESSAGE_HANDLER(ViewHostMsg_HideValidationMessage,
660 OnHideValidationMessage) 660 OnHideValidationMessage)
661 IPC_MESSAGE_HANDLER(ViewHostMsg_MoveValidationMessage, 661 IPC_MESSAGE_HANDLER(ViewHostMsg_MoveValidationMessage,
662 OnMoveValidationMessage) 662 OnMoveValidationMessage)
663 #if defined(OS_ANDROID) 663 #if defined(OS_ANDROID) && !defined(USE_AURA)
664 IPC_MESSAGE_HANDLER(ViewHostMsg_FindMatchRects_Reply, 664 IPC_MESSAGE_HANDLER(ViewHostMsg_FindMatchRects_Reply,
665 OnFindMatchRectsReply) 665 OnFindMatchRectsReply)
666 IPC_MESSAGE_HANDLER(ViewHostMsg_OpenDateTimeDialog, 666 IPC_MESSAGE_HANDLER(ViewHostMsg_OpenDateTimeDialog,
667 OnOpenDateTimeDialog) 667 OnOpenDateTimeDialog)
668 #endif 668 #endif
669 IPC_MESSAGE_UNHANDLED(handled = false) 669 IPC_MESSAGE_UNHANDLED(handled = false)
670 IPC_END_MESSAGE_MAP() 670 IPC_END_MESSAGE_MAP()
671 render_view_message_source_ = NULL; 671 render_view_message_source_ = NULL;
672 render_frame_message_source_ = NULL; 672 render_frame_message_source_ = NULL;
673 673
(...skipping 708 matching lines...) Expand 10 before | Expand all | Expand 10 after
1382 1382
1383 registrar_.Add(this, 1383 registrar_.Add(this,
1384 NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED, 1384 NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED,
1385 NotificationService::AllBrowserContextsAndSources()); 1385 NotificationService::AllBrowserContextsAndSources());
1386 1386
1387 screen_orientation_dispatcher_host_.reset( 1387 screen_orientation_dispatcher_host_.reset(
1388 new ScreenOrientationDispatcherHostImpl(this)); 1388 new ScreenOrientationDispatcherHostImpl(this));
1389 1389
1390 manifest_manager_host_.reset(new ManifestManagerHost(this)); 1390 manifest_manager_host_.reset(new ManifestManagerHost(this));
1391 1391
1392 #if defined(OS_ANDROID) 1392 #if defined(OS_ANDROID) && !defined(USE_AURA)
1393 date_time_chooser_.reset(new DateTimeChooserAndroid()); 1393 date_time_chooser_.reset(new DateTimeChooserAndroid());
1394 #endif 1394 #endif
1395 1395
1396 // BrowserPluginGuest::Init needs to be called after this WebContents has 1396 // BrowserPluginGuest::Init needs to be called after this WebContents has
1397 // a RenderWidgetHostViewGuest. That is, |view_->CreateView| above. 1397 // a RenderWidgetHostViewGuest. That is, |view_->CreateView| above.
1398 if (browser_plugin_guest_) 1398 if (browser_plugin_guest_)
1399 browser_plugin_guest_->Init(); 1399 browser_plugin_guest_->Init();
1400 1400
1401 for (size_t i = 0; i < g_created_callbacks.Get().size(); i++) 1401 for (size_t i = 0; i < g_created_callbacks.Get().size(); i++)
1402 g_created_callbacks.Get().at(i).Run(this); 1402 g_created_callbacks.Get().at(i).Run(this);
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
1589 DidToggleFullscreenModeForTab(IsFullscreenForCurrentTab())); 1589 DidToggleFullscreenModeForTab(IsFullscreenForCurrentTab()));
1590 } 1590 }
1591 1591
1592 void WebContentsImpl::ExitFullscreenMode() { 1592 void WebContentsImpl::ExitFullscreenMode() {
1593 // This method is being called to leave renderer-initiated fullscreen mode. 1593 // This method is being called to leave renderer-initiated fullscreen mode.
1594 // Make sure any existing fullscreen widget is shut down first. 1594 // Make sure any existing fullscreen widget is shut down first.
1595 RenderWidgetHostView* const widget_view = GetFullscreenRenderWidgetHostView(); 1595 RenderWidgetHostView* const widget_view = GetFullscreenRenderWidgetHostView();
1596 if (widget_view) 1596 if (widget_view)
1597 RenderWidgetHostImpl::From(widget_view->GetRenderWidgetHost())->Shutdown(); 1597 RenderWidgetHostImpl::From(widget_view->GetRenderWidgetHost())->Shutdown();
1598 1598
1599 #if defined(OS_ANDROID) 1599 #if defined(OS_ANDROID) && !defined(USE_AURA)
no sievers 2015/10/20 19:24:22 TODO: fullscreen video bug
1600 ContentVideoView* video_view = ContentVideoView::GetInstance(); 1600 ContentVideoView* video_view = ContentVideoView::GetInstance();
1601 if (video_view != NULL) 1601 if (video_view != NULL)
1602 video_view->OnExitFullscreen(); 1602 video_view->OnExitFullscreen();
1603 #endif 1603 #endif
1604 1604
1605 if (delegate_) 1605 if (delegate_)
1606 delegate_->ExitFullscreenModeForTab(this); 1606 delegate_->ExitFullscreenModeForTab(this);
1607 1607
1608 // Ensure web contents exit fullscreen state by sending a resize message, 1608 // Ensure web contents exit fullscreen state by sending a resize message,
1609 // which includes the fullscreen state. This is required for the situation 1609 // which includes the fullscreen state. This is required for the situation
(...skipping 1552 matching lines...) Expand 10 before | Expand all | Expand 10 after
3162 int number_of_matches, 3162 int number_of_matches,
3163 const gfx::Rect& selection_rect, 3163 const gfx::Rect& selection_rect,
3164 int active_match_ordinal, 3164 int active_match_ordinal,
3165 bool final_update) { 3165 bool final_update) {
3166 if (delegate_) { 3166 if (delegate_) {
3167 delegate_->FindReply(this, request_id, number_of_matches, selection_rect, 3167 delegate_->FindReply(this, request_id, number_of_matches, selection_rect,
3168 active_match_ordinal, final_update); 3168 active_match_ordinal, final_update);
3169 } 3169 }
3170 } 3170 }
3171 3171
3172 #if defined(OS_ANDROID) 3172 #if defined(OS_ANDROID) && !defined(USE_AURA)
3173 void WebContentsImpl::OnFindMatchRectsReply( 3173 void WebContentsImpl::OnFindMatchRectsReply(
3174 int version, 3174 int version,
3175 const std::vector<gfx::RectF>& rects, 3175 const std::vector<gfx::RectF>& rects,
3176 const gfx::RectF& active_rect) { 3176 const gfx::RectF& active_rect) {
3177 if (delegate_) 3177 if (delegate_)
3178 delegate_->FindMatchRectsReply(this, version, rects, active_rect); 3178 delegate_->FindMatchRectsReply(this, version, rects, active_rect);
3179 } 3179 }
3180 3180
3181 void WebContentsImpl::OnOpenDateTimeDialog( 3181 void WebContentsImpl::OnOpenDateTimeDialog(
3182 const ViewHostMsg_DateTimeDialogValue_Params& value) { 3182 const ViewHostMsg_DateTimeDialogValue_Params& value) {
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
3327 PowerSaveBlocker::kPowerSaveBlockPreventAppSuspension, 3327 PowerSaveBlocker::kPowerSaveBlockPreventAppSuspension,
3328 PowerSaveBlocker::kReasonAudioPlayback, "Playing audio"); 3328 PowerSaveBlocker::kReasonAudioPlayback, "Playing audio");
3329 } 3329 }
3330 3330
3331 void WebContentsImpl::CreateVideoPowerSaveBlocker() { 3331 void WebContentsImpl::CreateVideoPowerSaveBlocker() {
3332 DCHECK(!video_power_save_blocker_); 3332 DCHECK(!video_power_save_blocker_);
3333 DCHECK(!active_video_players_.empty()); 3333 DCHECK(!active_video_players_.empty());
3334 video_power_save_blocker_ = PowerSaveBlocker::Create( 3334 video_power_save_blocker_ = PowerSaveBlocker::Create(
3335 PowerSaveBlocker::kPowerSaveBlockPreventDisplaySleep, 3335 PowerSaveBlocker::kPowerSaveBlockPreventDisplaySleep,
3336 PowerSaveBlocker::kReasonVideoPlayback, "Playing video"); 3336 PowerSaveBlocker::kReasonVideoPlayback, "Playing video");
3337 #if defined(OS_ANDROID) 3337 #if defined(OS_ANDROID) &&!defined(USE_AURA)
3338 static_cast<PowerSaveBlockerImpl*>(video_power_save_blocker_.get()) 3338 static_cast<PowerSaveBlockerImpl*>(video_power_save_blocker_.get())
3339 ->InitDisplaySleepBlocker(this); 3339 ->InitDisplaySleepBlocker(this);
3340 #endif 3340 #endif
3341 } 3341 }
3342 3342
3343 void WebContentsImpl::MaybeReleasePowerSaveBlockers() { 3343 void WebContentsImpl::MaybeReleasePowerSaveBlockers() {
3344 // If there are no more audio players and we don't have audio stream 3344 // If there are no more audio players and we don't have audio stream
3345 // monitoring, release the audio power save blocker here instead of during 3345 // monitoring, release the audio power save blocker here instead of during
3346 // NotifyNavigationStateChanged(). 3346 // NotifyNavigationStateChanged().
3347 if (active_audio_players_.empty() && 3347 if (active_audio_players_.empty() &&
3348 !audio_state_provider_->IsAudioStateAvailable()) { 3348 !audio_state_provider_->IsAudioStateAvailable()) {
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
3385 } 3385 }
3386 3386
3387 void WebContentsImpl::OnMediaPausedNotification(int64 player_cookie) { 3387 void WebContentsImpl::OnMediaPausedNotification(int64 player_cookie) {
3388 RemoveMediaPlayerEntry(player_cookie, &active_audio_players_); 3388 RemoveMediaPlayerEntry(player_cookie, &active_audio_players_);
3389 RemoveMediaPlayerEntry(player_cookie, &active_video_players_); 3389 RemoveMediaPlayerEntry(player_cookie, &active_video_players_);
3390 MaybeReleasePowerSaveBlockers(); 3390 MaybeReleasePowerSaveBlockers();
3391 3391
3392 FOR_EACH_OBSERVER(WebContentsObserver, observers_, MediaPaused()); 3392 FOR_EACH_OBSERVER(WebContentsObserver, observers_, MediaPaused());
3393 } 3393 }
3394 3394
3395 #if defined(OS_ANDROID) 3395 #if defined(OS_ANDROID) && !defined(USE_AURA)
3396 3396
3397 void WebContentsImpl::OnMediaSessionStateChanged() { 3397 void WebContentsImpl::OnMediaSessionStateChanged() {
3398 MediaSession* session = MediaSession::Get(this); 3398 MediaSession* session = MediaSession::Get(this);
3399 FOR_EACH_OBSERVER(WebContentsObserver, observers_, 3399 FOR_EACH_OBSERVER(WebContentsObserver, observers_,
3400 MediaSessionStateChanged(session->IsControllable(), 3400 MediaSessionStateChanged(session->IsControllable(),
3401 session->IsSuspended())); 3401 session->IsSuspended()));
3402 } 3402 }
3403 3403
3404 void WebContentsImpl::ResumeMediaSession() { 3404 void WebContentsImpl::ResumeMediaSession() {
3405 MediaSession::Get(this)->Resume(); 3405 MediaSession::Get(this)->Resume();
(...skipping 1003 matching lines...) Expand 10 before | Expand all | Expand 10 after
4409 proxy_routing_id)) 4409 proxy_routing_id))
4410 return false; 4410 return false;
4411 4411
4412 // TODO(nasko): When RenderWidgetHost is owned by RenderFrameHost, the passed 4412 // TODO(nasko): When RenderWidgetHost is owned by RenderFrameHost, the passed
4413 // RenderFrameHost will have to be associated with the appropriate 4413 // RenderFrameHost will have to be associated with the appropriate
4414 // RenderWidgetHostView or a new one should be created here. 4414 // RenderWidgetHostView or a new one should be created here.
4415 4415
4416 return true; 4416 return true;
4417 } 4417 }
4418 4418
4419 #if defined(OS_ANDROID) 4419 #if defined(OS_ANDROID) && !defined(USE_AURA)
4420 4420
4421 base::android::ScopedJavaLocalRef<jobject> 4421 base::android::ScopedJavaLocalRef<jobject>
4422 WebContentsImpl::GetJavaWebContents() { 4422 WebContentsImpl::GetJavaWebContents() {
4423 DCHECK_CURRENTLY_ON(BrowserThread::UI); 4423 DCHECK_CURRENTLY_ON(BrowserThread::UI);
4424 return GetWebContentsAndroid()->GetJavaObject(); 4424 return GetWebContentsAndroid()->GetJavaObject();
4425 } 4425 }
4426 4426
4427 WebContentsAndroid* WebContentsImpl::GetWebContentsAndroid() { 4427 WebContentsAndroid* WebContentsImpl::GetWebContentsAndroid() {
4428 WebContentsAndroid* web_contents_android = 4428 WebContentsAndroid* web_contents_android =
4429 static_cast<WebContentsAndroid*>(GetUserData(kWebContentsAndroidKey)); 4429 static_cast<WebContentsAndroid*>(GetUserData(kWebContentsAndroidKey));
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
4608 player_map->erase(it); 4608 player_map->erase(it);
4609 } 4609 }
4610 4610
4611 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) { 4611 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) {
4612 force_disable_overscroll_content_ = force_disable; 4612 force_disable_overscroll_content_ = force_disable;
4613 if (view_) 4613 if (view_)
4614 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); 4614 view_->SetOverscrollControllerEnabled(CanOverscrollContent());
4615 } 4615 }
4616 4616
4617 } // namespace content 4617 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698