| // Copyright 2023 The Chromium Authors | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef COMPONENTS_WEBAPPS_BROWSER_ANDROID_WEBAPP_ICON_H_ | 
 | #define COMPONENTS_WEBAPPS_BROWSER_ANDROID_WEBAPP_ICON_H_ | 
 |  | 
 | #include <string> | 
 | #include "components/webapk/webapk.pb.h" | 
 | #include "url/gurl.h" | 
 |  | 
 | namespace webapps { | 
 |  | 
 | // Information related to WebAPK icon | 
 | class WebappIcon { | 
 |  public: | 
 |   explicit WebappIcon(const GURL& icon_url); | 
 |   explicit WebappIcon(const GURL& icon_url, | 
 |                       bool is_maskable, | 
 |                       webapk::Image::Usage usage); | 
 |  | 
 |   WebappIcon(const WebappIcon&); | 
 |   WebappIcon& operator=(const WebappIcon&); | 
 |   ~WebappIcon(); | 
 |  | 
 |   const GURL url() const { return url_; } | 
 |  | 
 |   void AddUsage(webapk::Image::Usage); | 
 |  | 
 |   int GetIdealSizeInPx() const; | 
 |  | 
 |  private: | 
 |   GURL url_; | 
 |   webapk::Image::Purpose purpose_; | 
 |   std::set<webapk::Image::Usage> usages_; | 
 | }; | 
 |  | 
 | }  // namespace webapps | 
 |  | 
 | #endif  // COMPONENTS_WEBAPPS_BROWSER_ANDROID_WEBAPP_ICON_H_ |