|  | // Copyright 2013 The Chromium Authors | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #ifndef CHROME_BROWSER_ANDROID_SHORTCUT_HELPER_H_ | 
|  | #define CHROME_BROWSER_ANDROID_SHORTCUT_HELPER_H_ | 
|  |  | 
|  | #include <memory> | 
|  | #include <set> | 
|  | #include <string> | 
|  | #include <vector> | 
|  |  | 
|  | #include "base/android/jni_android.h" | 
|  | #include "base/android/jni_weak_ref.h" | 
|  | #include "chrome/browser/android/webapk/webapk_info.h" | 
|  | #include "chrome/browser/android/webapk/webapk_install_service.h" | 
|  | #include "chrome/browser/android/webapk/webapk_installer.h" | 
|  | #include "components/webapps/browser/installable/installable_logging.h" | 
|  | #include "third_party/skia/include/core/SkBitmap.h" | 
|  |  | 
|  | namespace content { | 
|  | class WebContents; | 
|  | } | 
|  |  | 
|  | namespace webapps { | 
|  | struct ShortcutInfo; | 
|  | } | 
|  |  | 
|  | // ShortcutHelper is the C++ counterpart of org.chromium.chrome.browser's | 
|  | // ShortcutHelper in Java. | 
|  | class ShortcutHelper { | 
|  | public: | 
|  | ShortcutHelper() = delete; | 
|  | ShortcutHelper(const ShortcutHelper&) = delete; | 
|  | ShortcutHelper& operator=(const ShortcutHelper&) = delete; | 
|  |  | 
|  | // Adds a shortcut to the launcher using a SkBitmap. The type of shortcut | 
|  | // added depends on the properties in |info|. | 
|  | static void AddToLauncherWithSkBitmap( | 
|  | content::WebContents* web_contents, | 
|  | const webapps::ShortcutInfo& info, | 
|  | const SkBitmap& icon_bitmap, | 
|  | webapps::InstallableStatusCode installable_status); | 
|  |  | 
|  | // Stores the webapp splash screen in the WebappDataStorage associated with | 
|  | // |webapp_id|. | 
|  | static void StoreWebappSplashImage(const std::string& webapp_id, | 
|  | const SkBitmap& splash_image); | 
|  |  | 
|  | // Returns true if there is a WebAPK installed under |origin|, and false | 
|  | // otherwise. | 
|  | static bool DoesOriginContainAnyInstalledWebApk(const GURL& origin); | 
|  |  | 
|  | // Returns true if there is a TWA installed under |origin|, and false | 
|  | // otherwise. | 
|  | static bool DoesOriginContainAnyInstalledTrustedWebActivity( | 
|  | const GURL& origin); | 
|  |  | 
|  | // Returns a set of origins that have an installed WebAPK or TWA. | 
|  | static std::set<GURL> GetOriginsWithInstalledWebApksOrTwas(); | 
|  |  | 
|  | // Sets a flag to force an update for the WebAPK corresponding to |id| on next | 
|  | // launch. | 
|  | static void SetForceWebApkUpdate(const std::string& id); | 
|  | }; | 
|  |  | 
|  | #endif  // CHROME_BROWSER_ANDROID_SHORTCUT_HELPER_H_ |