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

Side by Side Diff: content/browser/renderer_host/render_widget_host_view_aura.cc

Issue 24101003: Make the RenderViewHostImpl update its visibility after a swap. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Don't show the new RWHV if WebContents is hidden. Created 7 years, 3 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/browser/renderer_host/render_widget_host_view_aura.h" 5 #include "content/browser/renderer_host/render_widget_host_view_aura.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/callback_helpers.h" 9 #include "base/callback_helpers.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 672 matching lines...) Expand 10 before | Expand all | Expand 10 after
683 window_->SetDefaultParentByRootWindow(parent, bounds); 683 window_->SetDefaultParentByRootWindow(parent, bounds);
684 Show(); 684 Show();
685 Focus(); 685 Focus();
686 } 686 }
687 687
688 RenderWidgetHost* RenderWidgetHostViewAura::GetRenderWidgetHost() const { 688 RenderWidgetHost* RenderWidgetHostViewAura::GetRenderWidgetHost() const {
689 return host_; 689 return host_;
690 } 690 }
691 691
692 void RenderWidgetHostViewAura::WasShown() { 692 void RenderWidgetHostViewAura::WasShown() {
693 DCHECK(host_);
693 if (!host_->is_hidden()) 694 if (!host_->is_hidden())
694 return; 695 return;
695 host_->WasShown(); 696 host_->WasShown();
696 if (framebuffer_holder_) 697 if (framebuffer_holder_)
697 FrameMemoryManager::GetInstance()->SetFrameVisibility(this, true); 698 FrameMemoryManager::GetInstance()->SetFrameVisibility(this, true);
698 699
699 aura::client::CursorClient* cursor_client = 700 aura::RootWindow* root = window_->GetRootWindow();
700 aura::client::GetCursorClient(window_->GetRootWindow()); 701 if (root) {
701 if (cursor_client) 702 aura::client::CursorClient* cursor_client =
702 NotifyRendererOfCursorVisibilityState(cursor_client->IsCursorVisible()); 703 aura::client::GetCursorClient(root);
704 if (cursor_client)
705 NotifyRendererOfCursorVisibilityState(cursor_client->IsCursorVisible());
706 }
703 707
704 if (!current_surface_.get() && host_->is_accelerated_compositing_active() && 708 if (!current_surface_.get() && host_->is_accelerated_compositing_active() &&
705 !released_front_lock_.get()) { 709 !released_front_lock_.get()) {
706 released_front_lock_ = GetCompositor()->GetCompositorLock(); 710 ui::Compositor* compositor = GetCompositor();
711 if (compositor)
712 released_front_lock_ = compositor->GetCompositorLock();
707 } 713 }
708 714
709 #if defined(OS_WIN) 715 #if defined(OS_WIN)
710 LPARAM lparam = reinterpret_cast<LPARAM>(this); 716 LPARAM lparam = reinterpret_cast<LPARAM>(this);
711 EnumChildWindows(ui::GetHiddenWindow(), ShowWindowsCallback, lparam); 717 EnumChildWindows(ui::GetHiddenWindow(), ShowWindowsCallback, lparam);
712 transient_observer_->SendPluginCutoutRects(); 718 transient_observer_->SendPluginCutoutRects();
713 #endif 719 #endif
714 } 720 }
715 721
716 void RenderWidgetHostViewAura::WasHidden() { 722 void RenderWidgetHostViewAura::WasHidden() {
717 if (host_->is_hidden()) 723 if (!host_ || host_->is_hidden())
718 return; 724 return;
719 host_->WasHidden(); 725 host_->WasHidden();
720 if (framebuffer_holder_) 726 if (framebuffer_holder_)
721 FrameMemoryManager::GetInstance()->SetFrameVisibility(this, false); 727 FrameMemoryManager::GetInstance()->SetFrameVisibility(this, false);
722 728
723 released_front_lock_ = NULL; 729 released_front_lock_ = NULL;
724 730
725 #if defined(OS_WIN) 731 #if defined(OS_WIN)
726 aura::RootWindow* root_window = window_->GetRootWindow(); 732 aura::RootWindow* root_window = window_->GetRootWindow();
727 if (root_window) { 733 if (root_window) {
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
954 bool RenderWidgetHostViewAura::HasFocus() const { 960 bool RenderWidgetHostViewAura::HasFocus() const {
955 return window_->HasFocus(); 961 return window_->HasFocus();
956 } 962 }
957 963
958 bool RenderWidgetHostViewAura::IsSurfaceAvailableForCopy() const { 964 bool RenderWidgetHostViewAura::IsSurfaceAvailableForCopy() const {
959 return CanCopyToBitmap() || !!host_->GetBackingStore(false); 965 return CanCopyToBitmap() || !!host_->GetBackingStore(false);
960 } 966 }
961 967
962 void RenderWidgetHostViewAura::Show() { 968 void RenderWidgetHostViewAura::Show() {
963 window_->Show(); 969 window_->Show();
970 WasShown();
964 } 971 }
965 972
966 void RenderWidgetHostViewAura::Hide() { 973 void RenderWidgetHostViewAura::Hide() {
967 window_->Hide(); 974 window_->Hide();
975 WasHidden();
968 } 976 }
969 977
970 bool RenderWidgetHostViewAura::IsShowing() { 978 bool RenderWidgetHostViewAura::IsShowing() {
971 return window_->IsVisible(); 979 return window_->IsVisible();
972 } 980 }
973 981
974 gfx::Rect RenderWidgetHostViewAura::GetViewBounds() const { 982 gfx::Rect RenderWidgetHostViewAura::GetViewBounds() const {
975 // This is the size that we want the renderer to produce. While we're waiting 983 // This is the size that we want the renderer to produce. While we're waiting
976 // for the correct frame (i.e. during a resize), don't change the size so that 984 // for the correct frame (i.e. during a resize), don't change the size so that
977 // we don't pipeline more resizes than we can handle. 985 // we don't pipeline more resizes than we can handle.
(...skipping 2396 matching lines...) Expand 10 before | Expand all | Expand 10 after
3374 RenderWidgetHost* widget) { 3382 RenderWidgetHost* widget) {
3375 return new RenderWidgetHostViewAura(widget); 3383 return new RenderWidgetHostViewAura(widget);
3376 } 3384 }
3377 3385
3378 // static 3386 // static
3379 void RenderWidgetHostViewPort::GetDefaultScreenInfo(WebScreenInfo* results) { 3387 void RenderWidgetHostViewPort::GetDefaultScreenInfo(WebScreenInfo* results) {
3380 GetScreenInfoForWindow(results, NULL); 3388 GetScreenInfoForWindow(results, NULL);
3381 } 3389 }
3382 3390
3383 } // namespace content 3391 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698