From 139ea1511f58d7c85d2d566f11816a3f14ab58ac Mon Sep 17 00:00:00 2001
From: David Bertoni <dbertoni@chromium.org>
Date: Fri, 28 Mar 2025 13:27:31 -0700
Subject: [PATCH] [Extensions] Fix some issues with the ENABLE_GUEST_VIEW build
 flag.

ExtensionsApiClient has some virtual functions controlled by this flag.
Unfortunately, the derived classes implement overrides and these
declarations and definitions aren't controlled by this flag, which leads
to compilation errors.

This CL adds the necessary ifdef blocks.

Bug: 356671305
Change-Id: I285e6dd8fdb9a56a79db4c22deb68f6c55e7c750
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6394592
Reviewed-by: Justin Lulejian <jlulejian@chromium.org>
Commit-Queue: David Bertoni <dbertoni@chromium.org>
Auto-Submit: David Bertoni <dbertoni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1439669}
---
 chrome/browser/extensions/api/chrome_extensions_api_client.cc | 2 ++
 chrome/browser/extensions/api/chrome_extensions_api_client.h  | 3 +++
 extensions/shell/browser/shell_extensions_api_client.cc       | 2 ++
 extensions/shell/browser/shell_extensions_api_client.h        | 2 ++
 4 files changed, 9 insertions(+)

diff --git a/chrome/browser/extensions/api/chrome_extensions_api_client.cc b/chrome/browser/extensions/api/chrome_extensions_api_client.cc
index f61ec524109fe..0ac0d2fae56a9 100644
--- a/chrome/browser/extensions/api/chrome_extensions_api_client.cc
+++ b/chrome/browser/extensions/api/chrome_extensions_api_client.cc
@@ -290,6 +290,7 @@ void ChromeExtensionsAPIClient::OpenFileUrl(
   Navigate(&navigate_params);
 }
 
+#if BUILDFLAG(ENABLE_GUEST_VIEW)
 AppViewGuestDelegate* ChromeExtensionsAPIClient::CreateAppViewGuestDelegate()
     const {
   return new ChromeAppViewGuestDelegate();
@@ -322,6 +323,7 @@ ChromeExtensionsAPIClient::CreateWebViewPermissionHelperDelegate(
     WebViewPermissionHelper* web_view_permission_helper) const {
   return new ChromeWebViewPermissionHelperDelegate(web_view_permission_helper);
 }
+#endif  // BUILDFLAG(ENABLE_GUEST_VIEW)
 
 #if BUILDFLAG(IS_CHROMEOS)
 std::unique_ptr<ConsentProvider>
diff --git a/chrome/browser/extensions/api/chrome_extensions_api_client.h b/chrome/browser/extensions/api/chrome_extensions_api_client.h
index 56568a6fa50c8..84822e4b43864 100644
--- a/chrome/browser/extensions/api/chrome_extensions_api_client.h
+++ b/chrome/browser/extensions/api/chrome_extensions_api_client.h
@@ -6,6 +6,7 @@
 #define CHROME_BROWSER_EXTENSIONS_API_CHROME_EXTENSIONS_API_CLIENT_H_
 
 #include "base/memory/raw_ptr.h"
+#include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
 #include "extensions/browser/api/extensions_api_client.h"
 
@@ -52,6 +53,7 @@ class ChromeExtensionsAPIClient : public ExtensionsAPIClient {
                         const Extension& extension) override;
   void OpenFileUrl(const GURL& file_url,
                    content::BrowserContext* browser_context) override;
+#if BUILDFLAG(ENABLE_GUEST_VIEW)
   AppViewGuestDelegate* CreateAppViewGuestDelegate() const override;
   ExtensionOptionsGuestDelegate* CreateExtensionOptionsGuestDelegate(
       ExtensionOptionsGuest* guest) const override;
@@ -64,6 +66,7 @@ class ChromeExtensionsAPIClient : public ExtensionsAPIClient {
       WebViewGuest* web_view_guest) const override;
   WebViewPermissionHelperDelegate* CreateWebViewPermissionHelperDelegate(
       WebViewPermissionHelper* web_view_permission_helper) const override;
+#endif  // BUILDFLAG(ENABLE_GUEST_VIEW)
 #if BUILDFLAG(IS_CHROMEOS)
   std::unique_ptr<ConsentProvider> CreateConsentProvider(
       content::BrowserContext* browser_context) const override;
diff --git a/extensions/shell/browser/shell_extensions_api_client.cc b/extensions/shell/browser/shell_extensions_api_client.cc
index 0bf1ad71ea362..267e4b0c46ae7 100644
--- a/extensions/shell/browser/shell_extensions_api_client.cc
+++ b/extensions/shell/browser/shell_extensions_api_client.cc
@@ -33,6 +33,7 @@ void ShellExtensionsAPIClient::AttachWebContentsHelpers(
   ShellExtensionWebContentsObserver::CreateForWebContents(web_contents);
 }
 
+#if BUILDFLAG(ENABLE_GUEST_VIEW)
 AppViewGuestDelegate* ShellExtensionsAPIClient::CreateAppViewGuestDelegate()
     const {
   return new ShellAppViewGuestDelegate();
@@ -42,6 +43,7 @@ WebViewGuestDelegate* ShellExtensionsAPIClient::CreateWebViewGuestDelegate(
     WebViewGuest* web_view_guest) const {
   return new ShellWebViewGuestDelegate();
 }
+#endif  // BUILDFLAG(ENABLE_GUEST_VIEW)
 
 std::unique_ptr<VirtualKeyboardDelegate>
 ShellExtensionsAPIClient::CreateVirtualKeyboardDelegate(
diff --git a/extensions/shell/browser/shell_extensions_api_client.h b/extensions/shell/browser/shell_extensions_api_client.h
index 409c1cacd572d..2ce760952efac 100644
--- a/extensions/shell/browser/shell_extensions_api_client.h
+++ b/extensions/shell/browser/shell_extensions_api_client.h
@@ -27,9 +27,11 @@ class ShellExtensionsAPIClient : public ExtensionsAPIClient {
   // ExtensionsAPIClient implementation.
   void AttachWebContentsHelpers(content::WebContents* web_contents) const
       override;
+#if BUILDFLAG(ENABLE_GUEST_VIEW)
   AppViewGuestDelegate* CreateAppViewGuestDelegate() const override;
   WebViewGuestDelegate* CreateWebViewGuestDelegate(
       WebViewGuest* web_view_guest) const override;
+#endif  // BUILDFLAG(ENABLE_GUEST_VIEW)
   std::unique_ptr<VirtualKeyboardDelegate> CreateVirtualKeyboardDelegate(
       content::BrowserContext* browser_context) const override;
   std::unique_ptr<DisplayInfoProvider> CreateDisplayInfoProvider()