| Index: chrome/browser/ui/views/chrome_views_delegate.cc
|
| diff --git a/chrome/browser/ui/views/chrome_views_delegate.cc b/chrome/browser/ui/views/chrome_views_delegate.cc
|
| index a3d6eaf2c209e3998b0fc07d87f3a4a7a81d1b39..32b02c7032b42669012b370a3a2f1cd26045f6f5 100644
|
| --- a/chrome/browser/ui/views/chrome_views_delegate.cc
|
| +++ b/chrome/browser/ui/views/chrome_views_delegate.cc
|
| @@ -174,19 +174,35 @@ views::NonClientFrameView* ChromeViewsDelegate::CreateDefaultNonClientFrameView(
|
| return NULL;
|
| }
|
|
|
| -bool ChromeViewsDelegate::UseTransparentWindows() const {
|
| -#if defined(USE_ASH)
|
| - // TODO(scottmg): http://crbug.com/133312. This needs context to determine
|
| - // if it's desktop or ash.
|
| -#if defined(OS_CHROMEOS)
|
| +bool ChromeViewsDelegate::UseTransparentWindows(
|
| + views::Widget::InitParams* params) const {
|
| + if (!params)
|
| + return false;
|
| +
|
| + if (params->type != views::Widget::InitParams::TYPE_WINDOW &&
|
| + params->type != views::Widget::InitParams::TYPE_PANEL)
|
| + return false;
|
| +
|
| +// For ChromeOS we always want transparent windows.
|
| +#if defined(USE_ASH) && defined(OS_CHROMEOS)
|
| return true;
|
| -#else
|
| - NOTIMPLEMENTED();
|
| - return false;
|
| #endif
|
| -#else
|
| - return false;
|
| +
|
| +// For Windows using Aura, we want transparent windows only if windows is
|
| +// either on ASH desktop or it's top level and not of type window.
|
| +#if defined(OS_WIN) && defined(USE_AURA)
|
| + if (chrome::IsNativeViewInAsh(params->context))
|
| + return true;
|
| +
|
| + // By default, make all top-level windows but the main window transparent
|
| + // initially so that they can be made to fade in.
|
| + if (params->top_level && params->type !=
|
| + views::Widget::InitParams::TYPE_WINDOW)
|
| + return true;
|
| #endif
|
| +
|
| + // For everything else we want opaque windows.
|
| + return false;
|
| }
|
|
|
| void ChromeViewsDelegate::AddRef() {
|
|
|