diff --git chrome/browser/taskbar/taskbar_decorator_win.cc chrome/browser/taskbar/taskbar_decorator_win.cc index 20f37cf8b31ee..85569f9a9694c 100644 --- chrome/browser/taskbar/taskbar_decorator_win.cc +++ chrome/browser/taskbar/taskbar_decorator_win.cc @@ -18,12 +18,14 @@ #include "base/strings/utf_string_conversions.h" #include "base/task/thread_pool.h" #include "base/win/scoped_gdi_object.h" +#include "cef/libcef/features/features.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/profiles/avatar_menu.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_attributes_storage.h" #include "chrome/browser/profiles/profile_avatar_icon_util.h" #include "chrome/browser/profiles/profile_manager.h" +#include "chrome/browser/ui/views/frame/browser_view.h" #include "skia/ext/font_utils.h" #include "skia/ext/image_operations.h" #include "skia/ext/legacy_display_globals.h" @@ -201,6 +203,21 @@ void UpdateTaskbarDecoration(Profile* profile, gfx::NativeWindow window) { return; } +#if BUILDFLAG(ENABLE_CEF) + if (auto browser_view = BrowserView::GetBrowserViewForNativeWindow(window)) { + if (auto browser = browser_view->browser()) { + if (browser->cef_delegate() && + (browser->is_type_picture_in_picture() || + browser->is_type_devtools()) && + browser->cef_delegate()->HasViewsHostedOpener()) { + // Don't add taskbar decoration. + taskbar::DrawTaskbarDecoration(window, nullptr); + return; + } + } + } +#endif // BUILDFLAG(ENABLE_CEF) + // We need to draw the taskbar decoration. Even though we have an icon on the // window's relaunch details, we draw over it because the user may have // pinned the badge-less Chrome shortcut which will cause Windows to ignore