Index: chrome/browser/ui/views/apps/native_app_window_views.cc |
diff --git a/chrome/browser/ui/views/apps/native_app_window_views.cc b/chrome/browser/ui/views/apps/native_app_window_views.cc |
index e465d1f5aff353b6f0ca90cd952c81184c2aa00d..eb886b4bfd28f34561445757d0944852dd877a88 100644 |
--- a/chrome/browser/ui/views/apps/native_app_window_views.cc |
+++ b/chrome/browser/ui/views/apps/native_app_window_views.cc |
@@ -211,6 +211,8 @@ void NativeAppWindowViews::Init(apps::AppWindow* app_window, |
const AppWindow::CreateParams& create_params) { |
app_window_ = app_window; |
frameless_ = create_params.frame == AppWindow::FRAME_NONE; |
+ has_frame_color_ = create_params.has_frame_color; |
+ frame_color_ = create_params.frame_color; |
transparent_background_ = create_params.transparent_background; |
resizable_ = create_params.resizable; |
Observe(web_contents()); |
@@ -232,7 +234,7 @@ void NativeAppWindowViews::Init(apps::AppWindow* app_window, |
window_->AddObserver(this); |
#if defined(OS_WIN) |
- if (ShouldUseChromeStyleFrame() && |
+ if (ShouldUseNativeFrame() && |
chrome::GetHostDesktopTypeForNativeWindow(window_->GetNativeWindow()) != |
chrome::HOST_DESKTOP_TYPE_ASH) { |
InstallEasyResizeTargeterOnContainer(); |
@@ -255,7 +257,7 @@ void NativeAppWindowViews::InitializeDefaultWindow( |
views::Widget::InitParams init_params(views::Widget::InitParams::TYPE_WINDOW); |
init_params.delegate = this; |
- init_params.remove_standard_frame = ShouldUseChromeStyleFrame(); |
+ init_params.remove_standard_frame = !ShouldUseNativeFrame(); |
#if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
// On Linux, remove the standard frame. Instead, we will use CustomFrameView |
// to draw a native-like frame. |
@@ -376,17 +378,8 @@ void NativeAppWindowViews::InitializePanelWindow( |
#endif |
} |
-bool NativeAppWindowViews::ShouldUseChromeStyleFrame() const { |
- if (frameless_) |
- return true; |
- |
-#if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
- // Linux always uses native style frames. |
- return false; |
-#endif |
- |
- return !CommandLine::ForCurrentProcess()->HasSwitch( |
- switches::kAppsUseNativeFrame); |
+bool NativeAppWindowViews::ShouldUseNativeFrame() const { |
+ return !frameless_ & !has_frame_color_; |
} |
void NativeAppWindowViews::InstallEasyResizeTargeterOnContainer() const { |
@@ -415,6 +408,7 @@ apps::AppWindowFrameView* NativeAppWindowViews::CreateAppWindowFrameView() { |
#endif |
apps::AppWindowFrameView* frame_view = new apps::AppWindowFrameView(this); |
frame_view->Init(window_, |
+ frame_color_, |
resize_inside_bounds_size, |
resize_outside_bounds_size, |
resize_outside_scale_for_touch, |
@@ -638,7 +632,7 @@ bool NativeAppWindowViews::CanMaximize() const { |
} |
base::string16 NativeAppWindowViews::GetWindowTitle() const { |
- return app_window_->GetTitle(); |
+ return base::string16(); |
} |
bool NativeAppWindowViews::ShouldShowWindowTitle() const { |
@@ -730,7 +724,7 @@ views::NonClientFrameView* NativeAppWindowViews::CreateNonClientFrameView( |
} |
} |
#endif |
- if (ShouldUseChromeStyleFrame()) |
+ if (!ShouldUseNativeFrame()) |
return CreateAppWindowFrameView(); |
return views::WidgetDelegateView::CreateNonClientFrameView(widget); |
} |
@@ -972,6 +966,10 @@ bool NativeAppWindowViews::IsFrameless() const { |
return frameless_; |
} |
+bool NativeAppWindowViews::HasFrameColor() const { return has_frame_color_; } |
+ |
+SkColor NativeAppWindowViews::FrameColor() const { return frame_color_; } |
+ |
gfx::Insets NativeAppWindowViews::GetFrameInsets() const { |
if (frameless_) |
return gfx::Insets(); |