[Status Icons] Allow vector resources

This is currently used by StatusIconLinuxDbus where the backend will
render the icon with the appropriate color depending on the color scheme
(white on dark backgrounds or black on light backgrounds).

R=thestig

Change-Id: I97ae5244282b17e06211dbcf5a6deb034f22abd3
Bug: None
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6139403
Code-Coverage: [email protected] <[email protected]>
Commit-Queue: Thomas Anderson <[email protected]>
Commit-Queue: Lei Zhang <[email protected]>
Auto-Submit: Thomas Anderson <[email protected]>
Reviewed-by: Lei Zhang <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1403983}
diff --git a/ui/linux/status_icon_linux.h b/ui/linux/status_icon_linux.h
index a235982f..d8975a8d 100644
--- a/ui/linux/status_icon_linux.h
+++ b/ui/linux/status_icon_linux.h
@@ -12,6 +12,7 @@
 
 namespace gfx {
 class ImageSkia;
+struct VectorIcon;
 }
 
 namespace ui {
@@ -32,6 +33,7 @@
     virtual bool HasClickAction() = 0;
 
     virtual const gfx::ImageSkia& GetImage() const = 0;
+    virtual const gfx::VectorIcon* GetIcon() const = 0;
     virtual const std::u16string& GetToolTip() const = 0;
     virtual ui::MenuModel* GetMenuModel() const = 0;
 
@@ -45,7 +47,8 @@
   StatusIconLinux();
   virtual ~StatusIconLinux();
 
-  virtual void SetIcon(const gfx::ImageSkia& image) = 0;
+  virtual void SetImage(const gfx::ImageSkia& image) = 0;
+  virtual void SetIcon(const gfx::VectorIcon& icon) = 0;
   virtual void SetToolTip(const std::u16string& tool_tip) = 0;
 
   // Invoked after a call to SetContextMenu() to let the platform-specific