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
3 // found in the LICENSE file.
5 #include "chrome/browser/ui/views/frame/browser_view.h"
7 #include "base/command_line.h"
8 #include "chrome/browser/ui/views/frame/opaque_browser_frame_view.h"
11 #include "chrome/browser/ui/views/frame/app_non_client_frame_view_ash.h"
12 #include "chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.h"
16 #include "chrome/browser/ui/views/frame/glass_browser_frame_view.h"
21 BrowserNonClientFrameView* CreateBrowserNonClientFrameView(
22 BrowserFrame* frame, BrowserView* browser_view) {
23 #if defined(USE_AURA) && defined(OS_WIN)
24 if (browser_view->browser()->
25 host_desktop_type() == chrome::HOST_DESKTOP_TYPE_NATIVE) {
26 if (frame->ShouldUseNativeFrame())
27 return new GlassBrowserFrameView(frame, browser_view);
28 return new OpaqueBrowserFrameView(frame, browser_view);
32 // If this is an app window and it's maximized, use the special frame_view.
33 if (browser_view->browser()->is_app() &&
34 browser_view->browser()->app_type() != Browser::APP_TYPE_CHILD &&
35 browser_view->IsMaximized())
36 return new AppNonClientFrameViewAsh(frame, browser_view);
38 // Default is potentially translucent fancy frames.
39 BrowserNonClientFrameViewAsh* frame_view =
40 new BrowserNonClientFrameViewAsh(frame, browser_view);
44 return new OpaqueBrowserFrameView(frame, browser_view);