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( |