From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jeremy Apthorp <nornagon@nornagon.net>
Date: Thu, 20 Sep 2018 17:48:31 -0700
Subject: libgtkui_export.patch

Export libgtkui symbols for the GN component build.

diff --git a/chrome/browser/ui/libgtkui/app_indicator_icon.h b/chrome/browser/ui/libgtkui/app_indicator_icon.h
index 7815fbb2cea8d3c3434287fa32c57e095199c217..f17a5c59e64b22ef0b864c3b8dd2dcb8b17d0c84 100644
--- a/chrome/browser/ui/libgtkui/app_indicator_icon.h
+++ b/chrome/browser/ui/libgtkui/app_indicator_icon.h
@@ -12,6 +12,7 @@
 #include "base/memory/weak_ptr.h"
 #include "base/nix/xdg_util.h"
 #include "chrome/browser/ui/libgtkui/gtk_signal.h"
+#include "chrome/browser/ui/libgtkui/libgtkui_export.h"
 #include "ui/views/linux_ui/status_icon_linux.h"
 
 typedef struct _AppIndicator AppIndicator;
@@ -31,7 +32,7 @@ namespace libgtkui {
 class AppIndicatorIconMenu;
 
 // Status icon implementation which uses libappindicator.
-class AppIndicatorIcon : public views::StatusIconLinux {
+class LIBGTKUI_EXPORT AppIndicatorIcon : public views::StatusIconLinux {
  public:
   // The id uniquely identifies the new status icon from other chrome status
   // icons.
diff --git a/chrome/browser/ui/libgtkui/gtk_status_icon.h b/chrome/browser/ui/libgtkui/gtk_status_icon.h
index e4e0da40981ca58964dfdcbd3fc0f730c9c09ec1..af028715ada9b8023f0ff7cf60e0f7e7acd6c042 100644
--- a/chrome/browser/ui/libgtkui/gtk_status_icon.h
+++ b/chrome/browser/ui/libgtkui/gtk_status_icon.h
@@ -10,6 +10,7 @@
 #include "base/macros.h"
 #include "base/strings/string16.h"
 #include "chrome/browser/ui/libgtkui/gtk_signal.h"
+#include "chrome/browser/ui/libgtkui/libgtkui_export.h"
 #include "ui/base/glib/glib_integers.h"
 #include "ui/base/glib/glib_signal.h"
 #include "ui/views/linux_ui/status_icon_linux.h"
@@ -29,7 +30,7 @@ class AppIndicatorIconMenu;
 
 // Status icon implementation which uses the system tray X11 spec (via
 // GtkStatusIcon).
-class Gtk2StatusIcon : public views::StatusIconLinux {
+class LIBGTKUI_EXPORT Gtk2StatusIcon : public views::StatusIconLinux {
  public:
   Gtk2StatusIcon(const gfx::ImageSkia& image, const base::string16& tool_tip);
   ~Gtk2StatusIcon() override;
diff --git a/chrome/browser/ui/libgtkui/gtk_util.h b/chrome/browser/ui/libgtkui/gtk_util.h
index d9f245070249f5f153bd8fe11e0a5e718c7d3629..05875b9ca744b6bf7e0891bca3b193f36a98b19d 100644
--- a/chrome/browser/ui/libgtkui/gtk_util.h
+++ b/chrome/browser/ui/libgtkui/gtk_util.h
@@ -11,6 +11,7 @@
 #include "ui/base/glib/scoped_gobject.h"
 #include "ui/native_theme/native_theme.h"
 #include "ui/views/window/frame_buttons.h"
+#include "chrome/browser/ui/libgtkui/libgtkui_export.h"
 
 namespace aura {
 class Window;
@@ -55,10 +56,10 @@ SkColor NormalURLColor(SkColor foreground);
 // saturation than to look exactly like the foreground color.
 SkColor SelectedURLColor(SkColor foreground, SkColor background);
 
-void GtkInitFromCommandLine(const base::CommandLine& command_line);
+LIBGTKUI_EXPORT void GtkInitFromCommandLine(const base::CommandLine& command_line);
 
 // Returns the name of the ".desktop" file associated with our running process.
-std::string GetDesktopName(base::Environment* env);
+LIBGTKUI_EXPORT std::string GetDesktopName(base::Environment* env);
 
 guint GetGdkKeyCodeForAccelerator(const ui::Accelerator& accelerator);
 
@@ -73,7 +74,7 @@ void TurnButtonBlue(GtkWidget* button);
 
 // Sets |dialog| as transient for |parent|, which will keep it on top and center
 // it above |parent|. Do nothing if |parent| is nullptr.
-void SetGtkTransientForAura(GtkWidget* dialog, aura::Window* parent);
+LIBGTKUI_EXPORT void SetGtkTransientForAura(GtkWidget* dialog, aura::Window* parent);
 
 // Gets the transient parent aura window for |dialog|.
 aura::Window* GetAuraTransientParent(GtkWidget* dialog);
@@ -180,7 +181,7 @@ void ApplyCssToContext(GtkStyleContext* context, const std::string& css);
 
 // Get the 'color' property from the style context created by
 // GetStyleContextFromCss(|css_selector|).
-SkColor GetFgColor(const std::string& css_selector);
+LIBGTKUI_EXPORT SkColor GetFgColor(const std::string& css_selector);
 
 ScopedCssProvider GetCssProvider(const std::string& css);
 
@@ -193,7 +194,7 @@ void RenderBackground(const gfx::Size& size,
 // Renders a background from the style context created by
 // GetStyleContextFromCss(|css_selector|) into a 24x24 bitmap and
 // returns the average color.
-SkColor GetBgColor(const std::string& css_selector);
+LIBGTKUI_EXPORT SkColor GetBgColor(const std::string& css_selector);
 
 // Renders the border from the style context created by
 // GetStyleContextFromCss(|css_selector|) into a 24x24 bitmap and
diff --git a/chrome/browser/ui/libgtkui/skia_utils_gtk.h b/chrome/browser/ui/libgtkui/skia_utils_gtk.h
index e05fbe9d8b2fe537a5eecbd3642dcc9eb848f3d7..3afca9a72ab69fed0144cfff8159aff5a480c4f5 100644
--- a/chrome/browser/ui/libgtkui/skia_utils_gtk.h
+++ b/chrome/browser/ui/libgtkui/skia_utils_gtk.h
@@ -7,6 +7,7 @@
 
 #include <stdint.h>
 
+#include "chrome/browser/ui/libgtkui/libgtkui_export.h"
 #include "third_party/skia/include/core/SkColor.h"
 
 typedef struct _GdkColor GdkColor;
@@ -41,7 +42,7 @@ const SkBitmap GdkPixbufToImageSkia(GdkPixbuf* pixbuf);
 // Convert and copy a SkBitmap to a GdkPixbuf. NOTE: this uses BGRAToRGBA, so
 // it is an expensive operation.  The returned GdkPixbuf will have a refcount of
 // 1, and the caller is responsible for unrefing it when done.
-GdkPixbuf* GdkPixbufFromSkBitmap(const SkBitmap& bitmap);
+LIBGTKUI_EXPORT GdkPixbuf* GdkPixbufFromSkBitmap(const SkBitmap& bitmap);
 
 }  // namespace libgtkui
 
diff --git a/chrome/browser/ui/libgtkui/unity_service.h b/chrome/browser/ui/libgtkui/unity_service.h
index 8d67e1460837c7f8adb151adea131cc6440659a3..95fbb27b6a81e4d73d239e94f5105078a936b5af 100644
--- a/chrome/browser/ui/libgtkui/unity_service.h
+++ b/chrome/browser/ui/libgtkui/unity_service.h
@@ -5,18 +5,20 @@
 #ifndef CHROME_BROWSER_UI_LIBGTKUI_UNITY_SERVICE_H_
 #define CHROME_BROWSER_UI_LIBGTKUI_UNITY_SERVICE_H_
 
+#include "chrome/browser/ui/libgtkui/libgtkui_export.h"
+
 namespace unity {
 
 // Returns whether unity is currently running.
-bool IsRunning();
+LIBGTKUI_EXPORT bool IsRunning();
 
 // If unity is running, sets the download counter in the dock icon. Any value
 // other than 0 displays the badge.
-void SetDownloadCount(int count);
+LIBGTKUI_EXPORT void SetDownloadCount(int count);
 
 // If unity is running, sets the download progress bar in the dock icon. Any
 // value between 0.0 and 1.0 (exclusive) shows the progress bar.
-void SetProgressFraction(float percentage);
+LIBGTKUI_EXPORT void SetProgressFraction(float percentage);
 
 }  // namespace unity
 
