From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Heilig Benedek <benecene@gmail.com>
Date: Sat, 10 Aug 2019 00:41:50 +0200
Subject: feat: enable picture in picture mode for video players

These files are needed to implement PiP, but the Electron build patches out
chrome's generated resources for our own. This updates the #include so that we
don't get errors for Chrome's generated resources, which are non-existent
because we don't generate them in our build.

diff --git a/chrome/browser/ui/views/overlay/document_overlay_window_views.cc b/chrome/browser/ui/views/overlay/document_overlay_window_views.cc
index 5fc5b852932b27237a14ca398ee7e43f16947e82..025d9d75adf67f44e846236e571bb3d815c90993 100644
--- a/chrome/browser/ui/views/overlay/document_overlay_window_views.cc
+++ b/chrome/browser/ui/views/overlay/document_overlay_window_views.cc
@@ -15,15 +15,19 @@
 #include "base/timer/timer.h"
 #include "build/build_config.h"
 #include "chrome/app/vector_icons/vector_icons.h"
+#if 0
 #include "chrome/browser/command_updater_delegate.h"
 #include "chrome/browser/command_updater_impl.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/themes/theme_service.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_finder.h"
+#endif
 #include "chrome/browser/ui/color/chrome_color_id.h"
+#if 0
 #include "chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.h"
 #include "chrome/browser/ui/views/location_bar/location_bar_view.h"
+#endif
 #include "chrome/browser/ui/views/overlay/back_to_tab_image_button.h"
 #include "chrome/browser/ui/views/overlay/close_image_button.h"
 #include "chrome/browser/ui/views/overlay/resize_handle_button.h"
@@ -57,7 +61,7 @@
 #include "ui/aura/window.h"
 #endif
 
-#if BUILDFLAG(IS_WIN)
+#if 0
 #include "chrome/browser/shell_integration_win.h"
 #include "ui/aura/window.h"
 #include "ui/aura/window_tree_host.h"
@@ -109,7 +113,7 @@ END_METADATA
 }  // namespace
 
 OverlayLocationBarViewProxy::~OverlayLocationBarViewProxy() = default;
-
+#if 0
 class OverlayLocationBarViewImpl : public OverlayLocationBarViewProxy,
                                    public ChromeLocationBarModelDelegate,
                                    public LocationBarView::Delegate,
@@ -167,7 +171,7 @@ class OverlayLocationBarViewImpl : public OverlayLocationBarViewProxy,
   const std::unique_ptr<LocationBarModelImpl> location_bar_model_;
   CommandUpdaterImpl command_updater_;
 };
-
+#endif
 // static
 std::unique_ptr<DocumentOverlayWindowViews> DocumentOverlayWindowViews::Create(
     content::DocumentPictureInPictureWindowController* controller,
@@ -203,7 +207,7 @@ std::unique_ptr<DocumentOverlayWindowViews> DocumentOverlayWindowViews::Create(
   overlay_window->Init(std::move(params));
   overlay_window->OnRootViewReady();
 
-#if BUILDFLAG(IS_WIN)
+#if 0
   std::wstring app_user_model_id;
   Browser* browser =
       chrome::FindBrowserWithWebContents(controller->GetWebContents());
@@ -278,12 +282,6 @@ views::View* DocumentOverlayWindowViews::GetControlsContainerView() const {
   return controls_container_view_;
 }
 
-const ui::ThemeProvider* DocumentOverlayWindowViews::GetThemeProvider() const {
-  // FIXME: is there a way to use a dark theme just for this window?
-  DCHECK(profile_for_theme_);
-  return &ThemeService::GetThemeProviderForProfile(profile_for_theme_);
-}
-
 void DocumentOverlayWindowViews::SetUpViews() {
   // The window content consists of the fixed-height controls_container_view at
   // the top which is a box layout, and the remainder of the view is filled with
@@ -299,6 +297,7 @@ void DocumentOverlayWindowViews::SetUpViews() {
   //   +-------------------------------------+
 
   content::WebContents* pip_contents = controller_->GetChildWebContents();
+#if 0
   auto* profile =
       Profile::FromBrowserContext(pip_contents->GetBrowserContext());
   profile_for_theme_ = profile;
@@ -309,8 +308,8 @@ void DocumentOverlayWindowViews::SetUpViews() {
     location_bar_view_proxy_ = std::make_unique<OverlayLocationBarViewImpl>(
         profile, controller_->GetWebContents());
   }
-
-  auto web_view = std::make_unique<views::WebView>(profile);
+#endif
+  auto web_view = std::make_unique<views::WebView>();
   DVLOG(2) << __func__ << ": content WebView=" << web_view.get();
   web_view->SetWebContents(pip_contents);
 
diff --git a/chrome/browser/ui/views/overlay/document_overlay_window_views.h b/chrome/browser/ui/views/overlay/document_overlay_window_views.h
index 4a49b767193881e115efb23f969c4b2ad5d9665a..551f580a40377368a490efb4ef7bace223c4ff7e 100644
--- a/chrome/browser/ui/views/overlay/document_overlay_window_views.h
+++ b/chrome/browser/ui/views/overlay/document_overlay_window_views.h
@@ -56,7 +56,6 @@ class DocumentOverlayWindowViews : public OverlayWindowViews,
   bool IsVisible() const override;
   void OnNativeWidgetMove() override;
   void OnNativeWidgetDestroyed() override;
-  const ui::ThemeProvider* GetThemeProvider() const override;
 
   // OverlayWindowViews
   bool ControlsHitTestContainsPoint(const gfx::Point& point) override;
diff --git a/chrome/browser/ui/views/overlay/overlay_window_views.cc b/chrome/browser/ui/views/overlay/overlay_window_views.cc
index 15e2692d469f65ca6dda1085bcafcea53e876304..168700f7732bf5b348aec589597416271c88eb11 100644
--- a/chrome/browser/ui/views/overlay/overlay_window_views.cc
+++ b/chrome/browser/ui/views/overlay/overlay_window_views.cc
@@ -14,9 +14,11 @@
 #include "base/time/time.h"
 #include "base/timer/timer.h"
 #include "build/build_config.h"
+#if 0
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_finder.h"
+#endif
 #include "chrome/grit/generated_resources.h"
 #include "chromeos/ui/base/chromeos_ui_constants.h"
 #include "components/vector_icons/vector_icons.h"
@@ -36,7 +38,7 @@
 #include "ui/aura/window.h"
 #endif
 
-#if BUILDFLAG(IS_WIN)
+#if 0
 #include "chrome/browser/shell_integration_win.h"
 #include "ui/aura/window.h"
 #include "ui/aura/window_tree_host.h"
diff --git a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
index 09819a589cf7f7a619a38a66188206dc56b9f5d6..b2c887710dafb9615739b625ad29229387fdb758 100644
--- a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
+++ b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
@@ -15,9 +15,11 @@
 #include "base/timer/timer.h"
 #include "build/build_config.h"
 #include "chrome/app/vector_icons/vector_icons.h"
+#if 0
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_finder.h"
+#endif
 #include "chrome/browser/ui/color/chrome_color_id.h"
 #include "chrome/browser/ui/views/overlay/back_to_tab_image_button.h"
 #include "chrome/browser/ui/views/overlay/back_to_tab_label_button.h"
@@ -56,7 +58,7 @@
 #include "ui/aura/window.h"
 #endif
 
-#if BUILDFLAG(IS_WIN)
+#if 0
 #include "chrome/browser/shell_integration_win.h"
 #include "ui/aura/window.h"
 #include "ui/aura/window_tree_host.h"
@@ -166,7 +168,7 @@ std::unique_ptr<VideoOverlayWindowViews> VideoOverlayWindowViews::Create(
   overlay_window->Init(std::move(params));
   overlay_window->OnRootViewReady();
 
-#if BUILDFLAG(IS_WIN)
+#if 0
   std::wstring app_user_model_id;
   Browser* browser =
       chrome::FindBrowserWithWebContents(controller->GetWebContents());
