[Fuchsia] Add flatland support in content_shell

Add FuchsiaViewPresenter in content_shell. The new class provides
callbacks required for the Flatland and Scenic ozone platforms in order
to present windows on Fuchsia. This makes content_shell compatible with
Flatland. Scenic is still used by default.

Bug: 1394192
Change-Id: Ia3942525049ded5b18dd72e77c106e8b425934da
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4303530
Commit-Queue: Sergey Ulanov <[email protected]>
Reviewed-by: danakj <[email protected]>
Reviewed-by: Emircan Uysaler <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1112968}
diff --git a/content/shell/browser/shell_browser_main_parts.h b/content/shell/browser/shell_browser_main_parts.h
index f52ca43..53f82fe 100644
--- a/content/shell/browser/shell_browser_main_parts.h
+++ b/content/shell/browser/shell_browser_main_parts.h
@@ -25,6 +25,10 @@
 namespace content {
 class ShellPlatformDelegate;
 
+#if BUILDFLAG(IS_FUCHSIA)
+class FuchsiaViewPresenter;
+#endif
+
 class ShellBrowserMainParts : public BrowserMainParts {
  public:
   ShellBrowserMainParts();
@@ -77,6 +81,9 @@
 #if BUILDFLAG(IS_ANDROID)
   std::unique_ptr<crash_reporter::ChildExitObserver> child_exit_observer_;
 #endif
+#if BUILDFLAG(IS_FUCHSIA)
+  std::unique_ptr<FuchsiaViewPresenter> fuchsia_view_presenter_;
+#endif
 };
 
 }  // namespace content