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

Unified Diff: chrome/browser/ui/views/frame/immersive_mode_controller_ash.cc

Issue 24469006: Fixing crash Report - Magic Signature: views::View::ConvertPointToScreen (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/frame/immersive_mode_controller_ash.cc
diff --git a/chrome/browser/ui/views/frame/immersive_mode_controller_ash.cc b/chrome/browser/ui/views/frame/immersive_mode_controller_ash.cc
index 5aa2b0f83de7170ac837d2ff9ec5701d60e31c06..b2879bc9a23f26df8edc37321eea093a6b6f5ee8 100644
--- a/chrome/browser/ui/views/frame/immersive_mode_controller_ash.cc
+++ b/chrome/browser/ui/views/frame/immersive_mode_controller_ash.cc
@@ -586,8 +586,8 @@ void ImmersiveModeControllerAsh::OnAddTransientChild(aura::Window* window,
aura::Window* transient) {
views::BubbleDelegateView* bubble_delegate = AsBubbleDelegate(transient);
if (bubble_delegate &&
- bubble_delegate->anchor_view() &&
- top_container_->Contains(bubble_delegate->anchor_view())) {
+ bubble_delegate->GetAnchorView() &&
+ top_container_->Contains(bubble_delegate->GetAnchorView())) {
// Observe the aura::Window because the BubbleDelegateView may not be
// parented to the widget's root view yet so |bubble_delegate->GetWidget()|
// may still return NULL.
@@ -837,10 +837,13 @@ void ImmersiveModeControllerAsh::UpdateFocusRevealedLock() {
native_window_->GetRootWindow())->GetActiveWindow();
views::BubbleDelegateView* bubble_delegate =
AsBubbleDelegate(active_window);
- if (bubble_delegate && bubble_delegate->anchor_view()) {
+ if (bubble_delegate && bubble_delegate->anchor_widget()) {
// BubbleManager will already have locked the top-of-window views if the
// bubble is anchored to a child of |top_container_|. Don't acquire
// |focus_revealed_lock_| here for the sake of simplicity.
+ // Note: Instead of checking for the existence of the |anchor_view|,
+ // the existence of the |anchor_widget| is performed to avoid the case
+ // where the view is already gone (and the widget is still running).
} else {
// The currently active window is not |native_window_| and it is not a
// bubble with an anchor view. The top-of-window views should be revealed
@@ -1170,8 +1173,8 @@ void ImmersiveModeControllerAsh::RecreateBubbleManager() {
views::BubbleDelegateView* bubble_delegate =
AsBubbleDelegate(transient_child);
if (bubble_delegate &&
- bubble_delegate->anchor_view() &&
- top_container_->Contains(bubble_delegate->anchor_view())) {
+ bubble_delegate->GetAnchorView() &&
+ top_container_->Contains(bubble_delegate->GetAnchorView())) {
bubble_manager_->StartObserving(transient_child);
}
}

Powered by Google App Engine
This is Rietveld 408576698