| 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 f7efbac74c2e794339c6c16fdd2d4b342eb54fb0..6a91f0602be8578278aa4951784895328912996e 100644
|
| --- a/chrome/browser/ui/views/chrome_views_delegate.cc
|
| +++ b/chrome/browser/ui/views/chrome_views_delegate.cc
|
| @@ -34,6 +34,7 @@
|
| #include "chrome/browser/app_icon_win.h"
|
| #include "content/public/browser/browser_thread.h"
|
| #include "ui/base/win/shell.h"
|
| +#include "ui/native_theme/native_theme_win_dark.h"
|
| #endif
|
|
|
| #if defined(USE_AURA)
|
| @@ -42,6 +43,14 @@
|
| #include "ui/aura/window_event_dispatcher.h"
|
| #endif
|
|
|
| +#if defined(OS_WIN) || defined(OS_CHROMEOS)
|
| +#include "ui/wm/core/transient_window_manager.h"
|
| +#endif
|
| +
|
| +#if defined(OS_CHROMEOS)
|
| +#include "ui/native_theme/native_theme_aura_dark.h"
|
| +#endif
|
| +
|
| #if defined(USE_AURA) && !defined(OS_CHROMEOS)
|
| #include "chrome/browser/ui/host_desktop.h"
|
| #include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h"
|
| @@ -472,6 +481,28 @@ ChromeViewsDelegate::GetBlockingPoolTaskRunner() {
|
| return content::BrowserThread::GetBlockingPool();
|
| }
|
|
|
| +ui::NativeTheme* ChromeViewsDelegate::GetNativeThemeOverride(
|
| + const views::Widget* widget) {
|
| +#if defined(OS_CHROMEOS) || defined(OS_WIN)
|
| + aura::Window* window = widget->GetNativeWindow();
|
| + for (aura::Window* parent = window; parent;
|
| + parent = wm::TransientWindowManager::Get(parent)->transient_parent()) {
|
| + window = parent;
|
| + }
|
| +
|
| + views::Widget* parent_widget =
|
| + views::Widget::GetWidgetForNativeWindow(window);
|
| + Profile* profile = GetProfileForWindow(parent_widget);
|
| + if (profile && profile->IsOffTheRecord())
|
| +#if defined(OS_WIN)
|
| + return ui::NativeThemeWinDark::instance();
|
| +#else
|
| + return ui::NativeThemeAuraDark::instance();
|
| +#endif
|
| +#endif
|
| + return nullptr;
|
| +}
|
| +
|
| #if !defined(USE_AURA) && !defined(USE_CHROMEOS)
|
| views::Widget::InitParams::WindowOpacity
|
| ChromeViewsDelegate::GetOpacityForInitParams(
|
|
|