Kaleidoscope: Add buildflag and register WebUIControllerFactory

This CL adds a new buildflag for Kaleidoscope and registers the
KaleidoscopeWebUIControllerFactory when enabled.

Bug: 1023995
Change-Id: I568297ec09a382736fa694f962dafff70f6f8dc6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1913460
Reviewed-by: Scott Violet <[email protected]>
Reviewed-by: Becca Hughes <[email protected]>
Commit-Queue: Tommy Steimel <[email protected]>
Cr-Commit-Position: refs/heads/master@{#717111}
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 159b737..87cf234 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -3,12 +3,14 @@
 # found in the LICENSE file.
 
 import("//base/allocator/allocator.gni")
+import("//build/buildflag_header.gni")
 import("//build/config/chrome_build.gni")
 import("//build/config/crypto.gni")
 import("//build/config/features.gni")
 import("//build/config/jumbo.gni")
 import("//build/config/linux/gtk/gtk.gni")
 import("//build/config/ui.gni")
+import("//chrome/browser/buildflags.gni")
 import("//chrome/common/features.gni")
 import("//components/feature_engagement/features.gni")
 import("//components/feed/features.gni")
@@ -62,6 +64,11 @@
   }
 }
 
+buildflag_header("buildflags") {
+  header = "buildflags.h"
+  flags = [ "ENABLE_KALEIDOSCOPE=$enable_kaleidoscope" ]
+}
+
 # This proto library is used for non-android NTPs below.
 proto_library("ntp_background_proto") {
   sources = [
@@ -1925,6 +1932,7 @@
   deps = [
     ":active_use_util",
     ":availability_protos",
+    ":buildflags",
     ":expired_flags_list",
     ":ntp_background_proto",
     ":resource_prefetch_predictor_proto",
@@ -4385,6 +4393,10 @@
     ]
   }
 
+  if (enable_kaleidoscope) {
+    deps += [ "//chrome/browser/media/kaleidoscope/internal" ]
+  }
+
   if (enable_legacy_desktop_in_product_help) {
     sources += [
       "feature_engagement/bookmark/bookmark_tracker.cc",