Index: chrome/browser/ui/views/exclusive_access_bubble_views.cc |
diff --git a/chrome/browser/ui/views/exclusive_access_bubble_views.cc b/chrome/browser/ui/views/exclusive_access_bubble_views.cc |
index 88035ff64469a4a79e55e2cfec363e74c8c4764f..ad935ec3adf1412aae2935856e39d8dfa1d4e7c0 100644 |
--- a/chrome/browser/ui/views/exclusive_access_bubble_views.cc |
+++ b/chrome/browser/ui/views/exclusive_access_bubble_views.cc |
@@ -10,7 +10,7 @@ |
#include "chrome/browser/chrome_notification_types.h" |
#include "chrome/browser/ui/exclusive_access/exclusive_access_manager.h" |
#include "chrome/browser/ui/exclusive_access/fullscreen_controller.h" |
-#include "chrome/browser/ui/views/frame/browser_view.h" |
+#include "chrome/browser/ui/views/exclusive_access_bubble_views_context.h" |
#include "chrome/browser/ui/views/frame/immersive_mode_controller.h" |
#include "chrome/browser/ui/views/frame/top_container_view.h" |
#include "chrome/grit/generated_resources.h" |
@@ -57,7 +57,6 @@ class ButtonView : public views::View { |
private: |
views::LabelButton* accept_button_; |
views::LabelButton* deny_button_; |
- |
DISALLOW_COPY_AND_ASSIGN(ButtonView); |
}; |
@@ -257,11 +256,13 @@ void ExclusiveAccessBubbleViews::ExclusiveAccessView::UpdateContent( |
// ExclusiveAccessBubbleViews -------------------------------------------------- |
ExclusiveAccessBubbleViews::ExclusiveAccessBubbleViews( |
- BrowserView* browser_view, |
+ ExclusiveAccessBubbleViewsContext* context, |
const GURL& url, |
ExclusiveAccessBubbleType bubble_type) |
- : ExclusiveAccessBubble(browser_view->browser(), url, bubble_type), |
- browser_view_(browser_view), |
+ : ExclusiveAccessBubble(context->GetExclusiveAccessManager(), |
+ url, |
+ bubble_type), |
+ bubble_view_context_(context), |
popup_(NULL), |
animation_(new gfx::SlideAnimation(this)), |
animated_attribute_(ANIMATED_ATTRIBUTE_BOUNDS) { |
@@ -269,9 +270,8 @@ ExclusiveAccessBubbleViews::ExclusiveAccessBubbleViews( |
// Create the contents view. |
ui::Accelerator accelerator(ui::VKEY_UNKNOWN, ui::EF_NONE); |
- bool got_accelerator = |
- browser_view_->GetWidget()->GetAccelerator(IDC_FULLSCREEN, &accelerator); |
- DCHECK(got_accelerator); |
+ bubble_view_context_->GetWidget()->GetAccelerator(IDC_FULLSCREEN, |
+ &accelerator); |
view_ = new ExclusiveAccessView(this, accelerator.GetShortcutText(), url, |
bubble_type_); |
@@ -283,7 +283,7 @@ ExclusiveAccessBubbleViews::ExclusiveAccessBubbleViews( |
views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP); |
params.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW; |
params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
- params.parent = browser_view_->GetWidget()->GetNativeView(); |
+ params.parent = bubble_view_context_->GetWidget()->GetNativeView(); |
params.bounds = GetPopupRect(false); |
popup_->Init(params); |
gfx::Size size = GetPopupRect(true).size(); |
@@ -298,11 +298,10 @@ ExclusiveAccessBubbleViews::ExclusiveAccessBubbleViews( |
popup_->AddObserver(this); |
- registrar_.Add( |
- this, chrome::NOTIFICATION_FULLSCREEN_CHANGED, |
- content::Source<FullscreenController>(browser_view_->browser() |
- ->exclusive_access_manager() |
- ->fullscreen_controller())); |
+ registrar_.Add(this, chrome::NOTIFICATION_FULLSCREEN_CHANGED, |
+ content::Source<FullscreenController>( |
+ bubble_view_context_->GetExclusiveAccessManager() |
+ ->fullscreen_controller())); |
UpdateForImmersiveState(); |
} |
@@ -371,7 +370,7 @@ void ExclusiveAccessBubbleViews::UpdateMouseWatcher() { |
void ExclusiveAccessBubbleViews::UpdateForImmersiveState() { |
AnimatedAttribute expected_animated_attribute = |
- browser_view_->immersive_mode_controller()->IsEnabled() |
+ bubble_view_context_->IsImmersiveModeEnabled() |
? ANIMATED_ATTRIBUTE_OPACITY |
: ANIMATED_ATTRIBUTE_BOUNDS; |
if (animated_attribute_ != expected_animated_attribute) { |
@@ -403,7 +402,7 @@ void ExclusiveAccessBubbleViews::UpdateBounds() { |
} |
views::View* ExclusiveAccessBubbleViews::GetBrowserRootView() const { |
- return browser_view_->GetWidget()->GetRootView(); |
+ return bubble_view_context_->GetWidget()->GetRootView(); |
} |
void ExclusiveAccessBubbleViews::AnimationProgressed( |
@@ -436,15 +435,15 @@ gfx::Rect ExclusiveAccessBubbleViews::GetPopupRect( |
gfx::Size size(view_->GetPreferredSize()); |
// NOTE: don't use the bounds of the root_view_. On linux GTK changing window |
// size is async. Instead we use the size of the screen. |
- gfx::Screen* screen = |
- gfx::Screen::GetScreenFor(browser_view_->GetWidget()->GetNativeView()); |
+ gfx::Screen* screen = gfx::Screen::GetScreenFor( |
+ bubble_view_context_->GetWidget()->GetNativeView()); |
gfx::Rect screen_bounds = |
screen->GetDisplayNearestWindow( |
- browser_view_->GetWidget()->GetNativeView()).bounds(); |
+ bubble_view_context_->GetWidget()->GetNativeView()).bounds(); |
int x = screen_bounds.x() + (screen_bounds.width() - size.width()) / 2; |
int top_container_bottom = screen_bounds.y(); |
- if (browser_view_->immersive_mode_controller()->IsEnabled()) { |
+ if (bubble_view_context_->IsImmersiveModeEnabled()) { |
// Skip querying the top container height in non-immersive fullscreen |
// because: |
// - The top container height is always zero in non-immersive fullscreen. |
@@ -455,7 +454,7 @@ gfx::Rect ExclusiveAccessBubbleViews::GetPopupRect( |
// revealed. When revealed, the top container has the same height as before |
// entering fullscreen. |
top_container_bottom = |
- browser_view_->top_container()->GetBoundsInScreen().bottom(); |
+ bubble_view_context_->GetTopContainerBoundsInScreen().bottom(); |
} |
int y = top_container_bottom + kPopupTopPx; |
@@ -472,7 +471,8 @@ gfx::Rect ExclusiveAccessBubbleViews::GetPopupRect( |
gfx::Point ExclusiveAccessBubbleViews::GetCursorScreenPoint() { |
gfx::Point cursor_pos = |
- gfx::Screen::GetScreenFor(browser_view_->GetWidget()->GetNativeView()) |
+ gfx::Screen::GetScreenFor( |
+ bubble_view_context_->GetWidget()->GetNativeView()) |
->GetCursorScreenPoint(); |
views::View::ConvertPointFromScreen(GetBrowserRootView(), &cursor_pos); |
return cursor_pos; |
@@ -483,7 +483,7 @@ bool ExclusiveAccessBubbleViews::WindowContainsPoint(gfx::Point pos) { |
} |
bool ExclusiveAccessBubbleViews::IsWindowActive() { |
- return browser_view_->GetWidget()->IsActive(); |
+ return bubble_view_context_->GetWidget()->IsActive(); |
} |
void ExclusiveAccessBubbleViews::Hide() { |
@@ -501,7 +501,7 @@ bool ExclusiveAccessBubbleViews::IsAnimating() { |
} |
bool ExclusiveAccessBubbleViews::CanMouseTriggerSlideIn() const { |
- return !browser_view_->immersive_mode_controller()->IsEnabled(); |
+ return !bubble_view_context_->IsImmersiveModeEnabled(); |
} |
void ExclusiveAccessBubbleViews::Observe( |