Index: chrome/browser/ui/views/apps/chrome_native_app_window_views.cc |
diff --git a/chrome/browser/ui/views/apps/chrome_native_app_window_views.cc b/chrome/browser/ui/views/apps/chrome_native_app_window_views.cc |
index 519c53cecbd6f5eee03706864601c83dd769737e..ae147eac757907b90ab3a55f7fc52745508107c0 100644 |
--- a/chrome/browser/ui/views/apps/chrome_native_app_window_views.cc |
+++ b/chrome/browser/ui/views/apps/chrome_native_app_window_views.cc |
@@ -18,6 +18,7 @@ |
#include "chrome/browser/ui/zoom/zoom_controller.h" |
#include "chrome/browser/web_applications/web_app.h" |
#include "chrome/common/chrome_switches.h" |
+#include "extensions/browser/app_window/app_window.h" |
#include "extensions/common/extension.h" |
#include "ui/aura/window.h" |
#include "ui/base/hit_test.h" |
@@ -56,8 +57,6 @@ |
#include "ash/shell_window_ids.h" |
#endif |
-using extensions::AppWindow; |
- |
namespace { |
const int kMinPanelWidth = 100; |
@@ -128,8 +127,9 @@ class NativeAppWindowStateDelegate : public ash::wm::WindowStateDelegate, |
public ash::wm::WindowStateObserver, |
public aura::WindowObserver { |
public: |
- NativeAppWindowStateDelegate(AppWindow* app_window, |
- extensions::NativeAppWindow* native_app_window) |
+ NativeAppWindowStateDelegate( |
+ extensions::AppWindow* app_window, |
+ native_app_window::NativeAppWindow* native_app_window) |
: app_window_(app_window), |
window_state_( |
ash::wm::GetWindowState(native_app_window->GetNativeWindow())) { |
@@ -186,7 +186,7 @@ class NativeAppWindowStateDelegate : public ash::wm::WindowStateDelegate, |
} |
// Not owned. |
- AppWindow* app_window_; |
+ extensions::AppWindow* app_window_; |
ash::wm::WindowState* window_state_; |
DISALLOW_COPY_AND_ASSIGN(NativeAppWindowStateDelegate); |
@@ -195,11 +195,13 @@ class NativeAppWindowStateDelegate : public ash::wm::WindowStateDelegate, |
} // namespace |
-ChromeNativeAppWindowViews::ChromeNativeAppWindowViews() |
+ChromeNativeAppWindowViews::ChromeNativeAppWindowViews( |
+ extensions::AppWindow* extensions_app_window) |
: is_fullscreen_(false), |
has_frame_color_(false), |
active_frame_color_(SK_ColorBLACK), |
- inactive_frame_color_(SK_ColorBLACK) { |
+ inactive_frame_color_(SK_ColorBLACK), |
+ extensions_app_window_(extensions_app_window) { |
} |
ChromeNativeAppWindowViews::~ChromeNativeAppWindowViews() {} |
@@ -209,9 +211,9 @@ void ChromeNativeAppWindowViews::OnBeforeWidgetInit( |
views::Widget* widget) {} |
void ChromeNativeAppWindowViews::InitializeDefaultWindow( |
- const AppWindow::CreateParams& create_params) { |
+ const native_app_window::AppWindowCreateParams& create_params) { |
std::string app_name = web_app::GenerateApplicationNameFromExtensionId( |
- app_window()->extension_id()); |
+ extensions_app_window_->extension_id()); |
views::Widget::InitParams init_params(views::Widget::InitParams::TYPE_WINDOW); |
init_params.delegate = this; |
@@ -250,7 +252,7 @@ void ChromeNativeAppWindowViews::InitializeDefaultWindow( |
SetContentSizeConstraints(create_params.GetContentMinimumSize(frame_insets), |
create_params.GetContentMaximumSize(frame_insets)); |
if (!window_bounds.IsEmpty()) { |
- typedef AppWindow::BoundsSpecification BoundsSpecification; |
+ typedef native_app_window::BoundsSpecification BoundsSpecification; |
bool position_specified = |
window_bounds.x() != BoundsSpecification::kUnspecifiedPosition && |
window_bounds.y() != BoundsSpecification::kUnspecifiedPosition; |
@@ -308,7 +310,7 @@ void ChromeNativeAppWindowViews::InitializeDefaultWindow( |
} |
void ChromeNativeAppWindowViews::InitializePanelWindow( |
- const AppWindow::CreateParams& create_params) { |
+ const native_app_window::AppWindowCreateParams& create_params) { |
views::Widget::InitParams params(views::Widget::InitParams::TYPE_PANEL); |
params.delegate = this; |
@@ -446,7 +448,7 @@ ui::WindowShowState ChromeNativeAppWindowViews::GetRestoredState() const { |
} |
bool ChromeNativeAppWindowViews::IsAlwaysOnTop() const { |
- if (app_window()->window_type_is_panel()) { |
+ if (app_window()->WindowTypeIsPanel()) { |
#if defined(USE_ASH) |
return ash::wm::GetWindowState(widget()->GetNativeWindow()) |
->panel_attached(); |
@@ -495,7 +497,7 @@ void ChromeNativeAppWindowViews::ShowContextMenuForView( |
// views::WidgetDelegate implementation. |
gfx::ImageSkia ChromeNativeAppWindowViews::GetWindowAppIcon() { |
- gfx::Image app_icon = app_window()->app_icon(); |
+ gfx::Image app_icon = extensions_app_window_->app_icon(); |
if (app_icon.IsEmpty()) |
return GetWindowIcon(); |
else |
@@ -503,7 +505,7 @@ gfx::ImageSkia ChromeNativeAppWindowViews::GetWindowAppIcon() { |
} |
gfx::ImageSkia ChromeNativeAppWindowViews::GetWindowIcon() { |
- content::WebContents* web_contents = app_window()->web_contents(); |
+ content::WebContents* web_contents = app_window()->GetWebContents(); |
if (web_contents) { |
FaviconTabHelper* favicon_tab_helper = |
FaviconTabHelper::FromWebContents(web_contents); |
@@ -520,11 +522,12 @@ views::NonClientFrameView* ChromeNativeAppWindowViews::CreateNonClientFrameView( |
if (chrome::IsNativeViewInAsh(widget->GetNativeView())) { |
// Set the delegate now because CustomFrameViewAsh sets the |
// WindowStateDelegate if one is not already set. |
- ash::wm::GetWindowState(GetNativeWindow())->SetDelegate( |
- scoped_ptr<ash::wm::WindowStateDelegate>( |
- new NativeAppWindowStateDelegate(app_window(), this)).Pass()); |
+ ash::wm::GetWindowState(GetNativeWindow()) |
+ ->SetDelegate(scoped_ptr<ash::wm::WindowStateDelegate>( |
+ new NativeAppWindowStateDelegate( |
+ extensions_app_window_, this)).Pass()); |
- if (app_window()->window_type_is_panel()) { |
+ if (app_window()->WindowTypeIsPanel()) { |
ash::PanelFrameView::FrameType frame_type = IsFrameless() ? |
ash::PanelFrameView::FRAME_NONE : ash::PanelFrameView::FRAME_ASH; |
views::NonClientFrameView* frame_view = |
@@ -601,9 +604,10 @@ bool ChromeNativeAppWindowViews::AcceleratorPressed( |
void ChromeNativeAppWindowViews::SetFullscreen(int fullscreen_types) { |
// Fullscreen not supported by panels. |
- if (app_window()->window_type_is_panel()) |
+ if (app_window()->WindowTypeIsPanel()) |
return; |
- is_fullscreen_ = (fullscreen_types != AppWindow::FULLSCREEN_TYPE_NONE); |
+ is_fullscreen_ = |
+ (fullscreen_types != native_app_window::FULLSCREEN_TYPE_NONE); |
widget()->SetFullscreen(is_fullscreen_); |
// TODO(oshima): Remove USE_ATHENA once athena has its own NativeAppWindow. |
@@ -613,13 +617,13 @@ void ChromeNativeAppWindowViews::SetFullscreen(int fullscreen_types) { |
// fullscreen is the fullscreen type used by the OS. |
immersive_fullscreen_controller_->SetEnabled( |
ash::ImmersiveFullscreenController::WINDOW_TYPE_PACKAGED_APP, |
- (fullscreen_types & AppWindow::FULLSCREEN_TYPE_OS) != 0); |
+ (fullscreen_types & native_app_window::FULLSCREEN_TYPE_OS) != 0); |
// Autohide the shelf instead of hiding the shelf completely when only in |
// OS fullscreen. |
ash::wm::WindowState* window_state = |
ash::wm::GetWindowState(widget()->GetNativeWindow()); |
- window_state->set_hide_shelf_when_fullscreen(fullscreen_types != |
- AppWindow::FULLSCREEN_TYPE_OS); |
+ window_state->set_hide_shelf_when_fullscreen( |
+ fullscreen_types != native_app_window::FULLSCREEN_TYPE_OS); |
DCHECK(ash::Shell::HasInstance()); |
ash::Shell::GetInstance()->UpdateShelfVisibility(); |
} |
@@ -636,8 +640,8 @@ bool ChromeNativeAppWindowViews::IsFullscreenOrPending() const { |
void ChromeNativeAppWindowViews::UpdateBadgeIcon() { |
const gfx::Image* icon = NULL; |
- if (!app_window()->badge_icon().IsEmpty()) { |
- icon = &app_window()->badge_icon(); |
+ if (!extensions_app_window_->badge_icon().IsEmpty()) { |
+ icon = &extensions_app_window_->badge_icon(); |
// chrome::DrawTaskbarDecoration can do interesting things with non-square |
// bitmaps. |
// TODO(benwells): Refactor chrome::DrawTaskbarDecoration to not be avatar |
@@ -684,20 +688,20 @@ SkColor ChromeNativeAppWindowViews::InactiveFrameColor() const { |
// NativeAppWindowViews implementation. |
void ChromeNativeAppWindowViews::InitializeWindow( |
- AppWindow* app_window, |
- const AppWindow::CreateParams& create_params) { |
+ native_app_window::NativeAppWindowDelegate* app_window, |
+ const native_app_window::AppWindowCreateParams& create_params) { |
DCHECK(widget()); |
has_frame_color_ = create_params.has_frame_color; |
active_frame_color_ = create_params.active_frame_color; |
inactive_frame_color_ = create_params.inactive_frame_color; |
- if (create_params.window_type == AppWindow::WINDOW_TYPE_PANEL || |
- create_params.window_type == AppWindow::WINDOW_TYPE_V1_PANEL) { |
+ if (create_params.window_type == native_app_window::WINDOW_TYPE_PANEL || |
+ create_params.window_type == native_app_window::WINDOW_TYPE_V1_PANEL) { |
InitializePanelWindow(create_params); |
} else { |
InitializeDefaultWindow(create_params); |
} |
extension_keybinding_registry_.reset(new ExtensionKeybindingRegistryViews( |
- Profile::FromBrowserContext(app_window->browser_context()), |
+ Profile::FromBrowserContext(app_window->GetBrowserContext()), |
widget()->GetFocusManager(), |
extensions::ExtensionKeybindingRegistry::PLATFORM_APPS_ONLY, |
NULL)); |