Commit 5152d9f1 authored by Ella Ge's avatar Ella Ge Committed by Commit Bot

[LargeSplash:3]Make WebApk update fetch splash icon

This CL replaces fetching the badge icon with fetching splash icon in
WebApk update.

With This CL, webapk will request update if the splash icon is changed.

Bug: 1043271
Change-Id: Ia297e7cc20fdacd652262fdb9101717526e1a341
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2037819
Commit-Queue: Ella Ge <eirage@chromium.org>
Reviewed-by: default avatarDominick Ng <dominickn@chromium.org>
Reviewed-by: default avatarPeter Kotwicz <pkotwicz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#744868}
parent 9fb2070c
......@@ -33,10 +33,10 @@ public class WebApkUpdateDataFetcher extends EmptyTabObserver {
* @param fetchedInfo The fetched Web Manifest data.
* @param primaryIconUrl The icon URL in {@link fetchedInfo#iconUrlToMurmur2HashMap()} best
* suited for use as the launcher icon on this device.
* @param badgeIconUrl The icon URL in {@link fetchedInfo#iconUrlToMurmur2HashMap()} best
* suited for use as the badge icon on this device.
* @param splashIconUrl The icon URL in {@link fetchedInfo#iconUrlToMurmur2HashMap()} best
* suited for use as the splash icon on this device.
*/
void onGotManifestData(WebApkInfo fetchedInfo, String primaryIconUrl, String badgeIconUrl);
void onGotManifestData(WebApkInfo fetchedInfo, String primaryIconUrl, String splashIconUrl);
}
/**
......@@ -106,8 +106,8 @@ public class WebApkUpdateDataFetcher extends EmptyTabObserver {
@CalledByNative
protected void onDataAvailable(String manifestStartUrl, String scopeUrl, String name,
String shortName, String primaryIconUrl, String primaryIconMurmur2Hash,
Bitmap primaryIconBitmap, boolean isPrimaryIconMaskable, String badgeIconUrl,
String badgeIconMurmur2Hash, Bitmap badgeIconBitmap, String[] iconUrls,
Bitmap primaryIconBitmap, boolean isPrimaryIconMaskable, String splashIconUrl,
String splashIconMurmur2Hash, Bitmap splashIconBitmap, String[] iconUrls,
@WebDisplayMode int displayMode, int orientation, long themeColor, long backgroundColor,
String shareAction, String shareParamsTitle, String shareParamsText,
boolean isShareMethodPost, boolean isShareEncTypeMultipart,
......@@ -119,8 +119,8 @@ public class WebApkUpdateDataFetcher extends EmptyTabObserver {
String murmur2Hash = null;
if (iconUrl.equals(primaryIconUrl)) {
murmur2Hash = primaryIconMurmur2Hash;
} else if (iconUrl.equals(badgeIconUrl)) {
murmur2Hash = badgeIconMurmur2Hash;
} else if (iconUrl.equals(splashIconUrl)) {
murmur2Hash = splashIconMurmur2Hash;
}
iconUrlToMurmur2HashMap.put(iconUrl, murmur2Hash);
}
......@@ -141,14 +141,15 @@ public class WebApkUpdateDataFetcher extends EmptyTabObserver {
int defaultBackgroundColor = SplashLayout.getDefaultBackgroundColor(appContext);
WebApkInfo info = WebApkInfo.create(mOldInfo.url(), scopeUrl,
new WebappIcon(primaryIconBitmap), new WebappIcon(badgeIconBitmap), null, name,
shortName, displayMode, orientation, mOldInfo.source(), themeColor, backgroundColor,
defaultBackgroundColor, isPrimaryIconMaskable, false /* isSplashIconMaskable */,
new WebappIcon(primaryIconBitmap), null /* badgeIcon*/,
new WebappIcon(splashIconBitmap), name, shortName, displayMode, orientation,
mOldInfo.source(), themeColor, backgroundColor, defaultBackgroundColor,
isPrimaryIconMaskable, false /* isSplashIconMaskable */,
mOldInfo.webApkPackageName(), mOldInfo.shellApkVersion(), mOldInfo.manifestUrl(),
manifestStartUrl, WebApkDistributor.BROWSER, iconUrlToMurmur2HashMap, shareTarget,
mOldInfo.shouldForceNavigation(), mOldInfo.isSplashProvidedByWebApk(), null,
shortcutItems, mOldInfo.webApkVersionCode());
mObserver.onGotManifestData(info, primaryIconUrl, badgeIconUrl);
mObserver.onGotManifestData(info, primaryIconUrl, splashIconUrl);
}
@NativeMethods
......
......@@ -112,8 +112,8 @@ public class WebApkUpdateManager implements WebApkUpdateDataFetcher.Observer, De
}
@Override
public void onGotManifestData(WebApkInfo fetchedInfo, String primaryIconUrl,
String badgeIconUrl) {
public void onGotManifestData(
WebApkInfo fetchedInfo, String primaryIconUrl, String splashIconUrl) {
mStorage.updateTimeOfLastCheckForUpdatedWebManifest();
if (mUpdateFailureHandler != null) {
mUpdateFailureHandler.removeCallbacksAndMessages(null);
......@@ -121,7 +121,7 @@ public class WebApkUpdateManager implements WebApkUpdateDataFetcher.Observer, De
boolean gotManifest = (fetchedInfo != null);
@WebApkUpdateReason
int updateReason = needsUpdate(mInfo, fetchedInfo, primaryIconUrl, badgeIconUrl);
int updateReason = needsUpdate(mInfo, fetchedInfo, primaryIconUrl, splashIconUrl);
boolean needsUpgrade = (updateReason != WebApkUpdateReason.NONE);
if (mStorage.shouldForceUpdate() && needsUpgrade) {
updateReason = WebApkUpdateReason.MANUALLY_TRIGGERED;
......@@ -157,7 +157,7 @@ public class WebApkUpdateManager implements WebApkUpdateDataFetcher.Observer, De
recordUpdate(mStorage, WebApkInstallResult.FAILURE, false /* relaxUpdates*/);
if (fetchedInfo != null) {
buildUpdateRequestAndSchedule(fetchedInfo, primaryIconUrl, badgeIconUrl,
buildUpdateRequestAndSchedule(fetchedInfo, primaryIconUrl, splashIconUrl,
false /* isManifestStale */, updateReason);
return;
}
......@@ -165,7 +165,7 @@ public class WebApkUpdateManager implements WebApkUpdateDataFetcher.Observer, De
// Tell the server that the our version of the Web Manifest might be stale and to ignore
// our Web Manifest data if the server's Web Manifest data is newer. This scenario can
// occur if the Web Manifest is temporarily unreachable.
buildUpdateRequestAndSchedule(mInfo, "" /* primaryIconUrl */, "" /* badgeIconUrl */,
buildUpdateRequestAndSchedule(mInfo, "" /* primaryIconUrl */, "" /* splashIconUrl */,
true /* isManifestStale */, updateReason);
}
......@@ -178,7 +178,7 @@ public class WebApkUpdateManager implements WebApkUpdateDataFetcher.Observer, De
/** Builds proto to send to the WebAPK server. */
private void buildUpdateRequestAndSchedule(WebApkInfo info, String primaryIconUrl,
String badgeIconUrl, boolean isManifestStale, @WebApkUpdateReason int updateReason) {
String splashIconUrl, boolean isManifestStale, @WebApkUpdateReason int updateReason) {
Callback<Boolean> callback = (success) -> {
if (!success) {
onFinishedUpdate(mStorage, WebApkInstallResult.FAILURE, false /* relaxUpdates*/);
......@@ -187,7 +187,7 @@ public class WebApkUpdateManager implements WebApkUpdateDataFetcher.Observer, De
scheduleUpdate();
};
String updateRequestPath = mStorage.createAndSetUpdateRequestFilePath(info);
storeWebApkUpdateRequestToFile(updateRequestPath, info, primaryIconUrl, badgeIconUrl,
storeWebApkUpdateRequestToFile(updateRequestPath, info, primaryIconUrl, splashIconUrl,
isManifestStale, updateReason, callback);
}
......@@ -333,31 +333,31 @@ public class WebApkUpdateManager implements WebApkUpdateDataFetcher.Observer, De
* @param fetchedInfo Fetched data for Web Manifest.
* @param primaryIconUrl The icon URL in {@link fetchedInfo#iconUrlToMurmur2HashMap()} best
* suited for use as the launcher icon on this device.
* @param badgeIconUrl The icon URL in {@link fetchedInfo#iconUrlToMurmur2HashMap()} best
* suited for use as the badge icon on this device.
* @param splashIconUrl The icon URL in {@link fetchedInfo#iconUrlToMurmur2HashMap()} best
* suited for use as the splash icon on this device.
* @return reason that an update is needed or {@link WebApkUpdateReason#NONE} if an update is
* not needed.
*/
private static @WebApkUpdateReason int needsUpdate(WebApkInfo oldInfo, WebApkInfo fetchedInfo,
String primaryIconUrl, String badgeIconUrl) {
String primaryIconUrl, String splashIconUrl) {
if (isShellApkVersionOutOfDate(oldInfo)) return WebApkUpdateReason.OLD_SHELL_APK;
if (fetchedInfo == null) return WebApkUpdateReason.NONE;
// We should have computed the Murmur2 hashes for the bitmaps at the primary icon URL and
// the badge icon for {@link fetchedInfo} (but not the other icon URLs.)
// the splash icon for {@link fetchedInfo} (but not the other icon URLs.)
String fetchedPrimaryIconMurmur2Hash = fetchedInfo.iconUrlToMurmur2HashMap()
.get(primaryIconUrl);
String primaryIconMurmur2Hash = findMurmur2HashForUrlIgnoringFragment(
oldInfo.iconUrlToMurmur2HashMap(), primaryIconUrl);
String fetchedBadgeIconMurmur2Hash = fetchedInfo.iconUrlToMurmur2HashMap()
.get(badgeIconUrl);
String badgeIconMurmur2Hash = findMurmur2HashForUrlIgnoringFragment(
oldInfo.iconUrlToMurmur2HashMap(), badgeIconUrl);
String fetchedSplashIconMurmur2Hash =
fetchedInfo.iconUrlToMurmur2HashMap().get(splashIconUrl);
String splashIconMurmur2Hash = findMurmur2HashForUrlIgnoringFragment(
oldInfo.iconUrlToMurmur2HashMap(), splashIconUrl);
if (!TextUtils.equals(primaryIconMurmur2Hash, fetchedPrimaryIconMurmur2Hash)) {
return WebApkUpdateReason.PRIMARY_ICON_HASH_DIFFERS;
} else if (!TextUtils.equals(badgeIconMurmur2Hash, fetchedBadgeIconMurmur2Hash)) {
return WebApkUpdateReason.BADGE_ICON_HASH_DIFFERS;
} else if (!TextUtils.equals(splashIconMurmur2Hash, fetchedSplashIconMurmur2Hash)) {
return WebApkUpdateReason.SPLASH_ICON_HASH_DIFFERS;
} else if (!UrlUtilities.urlsMatchIgnoringFragments(
oldInfo.scopeUrl(), fetchedInfo.scopeUrl())) {
return WebApkUpdateReason.SCOPE_DIFFERS;
......@@ -402,7 +402,7 @@ public class WebApkUpdateManager implements WebApkUpdateDataFetcher.Observer, De
}
protected void storeWebApkUpdateRequestToFile(String updateRequestPath, WebApkInfo info,
String primaryIconUrl, String badgeIconUrl, boolean isManifestStale,
String primaryIconUrl, String splashIconUrl, boolean isManifestStale,
@WebApkUpdateReason int updateReason, Callback<Boolean> callback) {
int versionCode = info.webApkVersionCode();
int size = info.iconUrlToMurmur2HashMap().size();
......@@ -425,8 +425,8 @@ public class WebApkUpdateManager implements WebApkUpdateDataFetcher.Observer, De
WebApkUpdateManagerJni.get().storeWebApkUpdateRequestToFile(updateRequestPath,
info.manifestStartUrl(), info.scopeUrl(), info.name(), info.shortName(),
primaryIconUrl, info.icon().bitmap(), info.isIconAdaptive(), badgeIconUrl,
info.badgeIcon().bitmap(), iconUrls, iconHashes, info.displayMode(),
primaryIconUrl, info.icon().bitmap(), info.isIconAdaptive(), splashIconUrl,
info.splashIcon().bitmap(), iconUrls, iconHashes, info.displayMode(),
info.orientation(), info.toolbarColor(), info.backgroundColor(),
info.shareTarget().getAction(), info.shareTarget().getParamTitle(),
info.shareTarget().getParamText(), info.shareTarget().isShareMethodPost(),
......@@ -439,8 +439,8 @@ public class WebApkUpdateManager implements WebApkUpdateDataFetcher.Observer, De
interface Natives {
public void storeWebApkUpdateRequestToFile(String updateRequestPath, String startUrl,
String scope, String name, String shortName, String primaryIconUrl,
Bitmap primaryIcon, boolean isPrimaryIconMaskable, String badgeIconUrl,
Bitmap badgeIcon, String[] iconUrls, String[] iconHashes,
Bitmap primaryIcon, boolean isPrimaryIconMaskable, String splashIconUrl,
Bitmap splashIcon, String[] iconUrls, String[] iconHashes,
@WebDisplayMode int displayMode, int orientation, long themeColor,
long backgroundColor, String shareTargetAction, String shareTargetParamTitle,
String shareTargetParamText, boolean shareTargetParamIsMethodPost,
......
......@@ -74,7 +74,7 @@ public class WebApkUpdateDataFetcherTest {
@Override
public void onGotManifestData(
WebApkInfo fetchedInfo, String primaryIconUrl, String badgeIconUrl) {
WebApkInfo fetchedInfo, String primaryIconUrl, String splashIconUrl) {
Assert.assertNull(mName);
mWebApkCompatible = true;
mName = fetchedInfo.name();
......
......@@ -93,15 +93,15 @@ public class WebApkUpdateManagerTest {
}
@Override
public void onGotManifestData(WebApkInfo fetchedInfo, String primaryIconUrl,
String badgeIconUrl) {
super.onGotManifestData(fetchedInfo, primaryIconUrl, badgeIconUrl);
public void onGotManifestData(
WebApkInfo fetchedInfo, String primaryIconUrl, String splashIconUrl) {
super.onGotManifestData(fetchedInfo, primaryIconUrl, splashIconUrl);
mWaiter.notifyCalled();
}
@Override
protected void storeWebApkUpdateRequestToFile(String updateRequestPath, WebApkInfo info,
String primaryIconUrl, String badgeIconUrl, boolean isManifestStale,
String primaryIconUrl, String splashIconUrl, boolean isManifestStale,
@WebApkUpdateReason int updateReason, Callback<Boolean> callback) {
mNeedsUpdate = true;
}
......
......@@ -127,7 +127,6 @@ struct ShortcutInfo {
int minimum_splash_image_size_in_px;
GURL splash_image_url;
GURL best_primary_icon_url;
GURL best_badge_icon_url;
std::vector<std::string> icon_urls;
base::Optional<ShareTarget> share_target;
......
......@@ -49,6 +49,7 @@ message WebApk {
MANUALLY_TRIGGERED = 14;
PRIMARY_ICON_MASKABLE_DIFFERS = 15;
SHORTCUTS_DIFFER = 16;
SPLASH_ICON_HASH_DIFFERS = 17;
}
// Package name of the WebAPK.
......
......@@ -127,6 +127,8 @@ webapk::WebApk_UpdateReason ConvertUpdateReasonToProtoEnum(
return webapk::WebApk::PRIMARY_ICON_MASKABLE_DIFFERS;
case WebApkUpdateReason::BADGE_ICON_HASH_DIFFERS:
return webapk::WebApk::BADGE_ICON_HASH_DIFFERS;
case WebApkUpdateReason::SPLASH_ICON_HASH_DIFFERS:
return webapk::WebApk::SPLASH_ICON_HASH_DIFFERS;
case WebApkUpdateReason::SCOPE_DIFFERS:
return webapk::WebApk::SCOPE_DIFFERS;
case WebApkUpdateReason::START_URL_DIFFERS:
......@@ -339,7 +341,7 @@ bool StoreUpdateRequestToFileInBackground(
const ShortcutInfo& shortcut_info,
const SkBitmap& primary_icon,
bool is_primary_icon_maskable,
const SkBitmap& badge_icon,
const SkBitmap& splash_icon,
const std::string& package_name,
const std::string& version,
std::map<std::string, WebApkIconHasher::Icon> icon_url_to_murmur2_hash,
......@@ -348,10 +350,8 @@ bool StoreUpdateRequestToFileInBackground(
base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
base::BlockingType::MAY_BLOCK);
// TODO(crbug.com/1043271): Passing an empty SkBitmap for now as webapk update
// does not include splash_icon image yet.
std::unique_ptr<std::string> proto = BuildProtoInBackground(
shortcut_info, primary_icon, is_primary_icon_maskable, SkBitmap(),
shortcut_info, primary_icon, is_primary_icon_maskable, splash_icon,
package_name, version, std::move(icon_url_to_murmur2_hash),
is_manifest_stale, update_reason);
......@@ -464,7 +464,7 @@ void WebApkInstaller::StoreUpdateRequestToFile(
const ShortcutInfo& shortcut_info,
const SkBitmap& primary_icon,
bool is_primary_icon_maskable,
const SkBitmap& badge_icon,
const SkBitmap& splash_icon,
const std::string& package_name,
const std::string& version,
std::map<std::string, WebApkIconHasher::Icon> icon_url_to_murmur2_hash,
......@@ -475,7 +475,7 @@ void WebApkInstaller::StoreUpdateRequestToFile(
GetBackgroundTaskRunner().get(), FROM_HERE,
base::BindOnce(&StoreUpdateRequestToFileInBackground, update_request_path,
shortcut_info, primary_icon, is_primary_icon_maskable,
badge_icon, package_name, version,
splash_icon, package_name, version,
std::move(icon_url_to_murmur2_hash), is_manifest_stale,
update_reason),
std::move(callback));
......
......@@ -15,6 +15,7 @@ enum class WebApkUpdateReason {
PRIMARY_ICON_HASH_DIFFERS,
PRIMARY_ICON_MASKABLE_DIFFERS,
BADGE_ICON_HASH_DIFFERS,
SPLASH_ICON_HASH_DIFFERS,
SCOPE_DIFFERS,
START_URL_DIFFERS,
SHORT_NAME_DIFFERS,
......
......@@ -116,7 +116,7 @@ void WebApkUpdateDataFetcher::FetchInstallableData() {
ShortcutHelper::DoesAndroidSupportMaskableIcons();
params.has_worker = true;
params.valid_primary_icon = true;
params.valid_badge_icon = true;
params.valid_splash_icon = true;
params.wait_for_worker = true;
InstallableManager* installable_manager =
InstallableManager::FromWebContents(web_contents());
......@@ -153,14 +153,14 @@ void WebApkUpdateDataFetcher::OnDidGetInstallableData(
primary_icon_ = *data.primary_icon;
is_primary_icon_maskable_ = data.has_maskable_primary_icon;
if (data.badge_icon && !data.badge_icon->drawsNothing()) {
info_.best_badge_icon_url = data.badge_icon_url;
badge_icon_ = *data.badge_icon;
if (data.splash_icon && !data.splash_icon->drawsNothing()) {
info_.splash_image_url = data.splash_icon_url;
splash_icon_ = *data.splash_icon;
}
std::set<GURL> urls{info_.best_primary_icon_url};
if (!info_.best_badge_icon_url.is_empty())
urls.insert(info_.best_badge_icon_url);
if (!info_.splash_image_url.is_empty())
urls.insert(info_.splash_image_url);
for (const auto& shortcut_url : info_.best_shortcut_icon_urls) {
if (shortcut_url.is_valid())
......@@ -203,15 +203,15 @@ void WebApkUpdateDataFetcher::OnGotIconMurmur2Hashes(
ScopedJavaLocalRef<jobject> java_primary_icon =
gfx::ConvertToJavaBitmap(&primary_icon_);
jboolean java_is_primary_icon_maskable = is_primary_icon_maskable_;
ScopedJavaLocalRef<jstring> java_badge_icon_url =
ScopedJavaLocalRef<jstring> java_splash_icon_url =
base::android::ConvertUTF8ToJavaString(env,
info_.best_badge_icon_url.spec());
ScopedJavaLocalRef<jstring> java_badge_icon_murmur2_hash =
info_.splash_image_url.spec());
ScopedJavaLocalRef<jstring> java_splash_icon_murmur2_hash =
base::android::ConvertUTF8ToJavaString(
env, (*hashes)[info_.best_badge_icon_url.spec()].hash);
ScopedJavaLocalRef<jobject> java_badge_icon;
if (!badge_icon_.drawsNothing())
java_badge_icon = gfx::ConvertToJavaBitmap(&badge_icon_);
env, (*hashes)[info_.splash_image_url.spec()].hash);
ScopedJavaLocalRef<jobject> java_splash_icon;
if (!splash_icon_.drawsNothing())
java_splash_icon = gfx::ConvertToJavaBitmap(&splash_icon_);
ScopedJavaLocalRef<jobjectArray> java_icon_urls =
base::android::ToJavaArrayOfStrings(env, info_.icon_urls);
......@@ -274,8 +274,8 @@ void WebApkUpdateDataFetcher::OnGotIconMurmur2Hashes(
Java_WebApkUpdateDataFetcher_onDataAvailable(
env, java_ref_, java_url, java_scope, java_name, java_short_name,
java_primary_icon_url, java_primary_icon_murmur2_hash, java_primary_icon,
java_is_primary_icon_maskable, java_badge_icon_url,
java_badge_icon_murmur2_hash, java_badge_icon, java_icon_urls,
java_is_primary_icon_maskable, java_splash_icon_url,
java_splash_icon_murmur2_hash, java_splash_icon, java_icon_urls,
static_cast<int>(info_.display), info_.orientation,
OptionalSkColorToJavaColor(info_.theme_color),
OptionalSkColorToJavaColor(info_.background_color), java_share_action,
......
......@@ -83,7 +83,7 @@ class WebApkUpdateDataFetcher : public content::WebContentsObserver {
SkBitmap primary_icon_;
bool is_primary_icon_maskable_;
SkBitmap badge_icon_;
SkBitmap splash_icon_;
base::WeakPtrFactory<WebApkUpdateDataFetcher> weak_ptr_factory_{this};
......
......@@ -58,8 +58,8 @@ static void JNI_WebApkUpdateManager_StoreWebApkUpdateRequestToFile(
const JavaParamRef<jstring>& java_primary_icon_url,
const JavaParamRef<jobject>& java_primary_icon_bitmap,
jboolean java_is_primary_icon_maskable,
const JavaParamRef<jstring>& java_badge_icon_url,
const JavaParamRef<jobject>& java_badge_icon_bitmap,
const JavaParamRef<jstring>& java_splash_icon_url,
const JavaParamRef<jobject>& java_splash_icon_bitmap,
const JavaParamRef<jobjectArray>& java_icon_urls,
const JavaParamRef<jobjectArray>& java_icon_hashes,
jint java_display_mode,
......@@ -97,8 +97,8 @@ static void JNI_WebApkUpdateManager_StoreWebApkUpdateRequestToFile(
info.background_color = JavaColorToOptionalSkColor(java_background_color);
info.best_primary_icon_url =
GURL(ConvertJavaStringToUTF8(env, java_primary_icon_url));
info.best_badge_icon_url =
GURL(ConvertJavaStringToUTF8(env, java_badge_icon_url));
info.splash_image_url =
GURL(ConvertJavaStringToUTF8(env, java_splash_icon_url));
info.manifest_url = GURL(ConvertJavaStringToUTF8(env, java_web_manifest_url));
GURL share_target_action =
......@@ -156,11 +156,11 @@ static void JNI_WebApkUpdateManager_StoreWebApkUpdateRequestToFile(
gfx::CreateSkBitmapFromJavaBitmap(java_primary_icon_bitmap_lock);
primary_icon.setImmutable();
SkBitmap badge_icon;
if (!java_badge_icon_bitmap.is_null()) {
gfx::JavaBitmap java_badge_icon_bitmap_lock(java_badge_icon_bitmap);
gfx::CreateSkBitmapFromJavaBitmap(java_badge_icon_bitmap_lock);
badge_icon.setImmutable();
SkBitmap splash_icon;
if (!java_splash_icon_bitmap.is_null()) {
gfx::JavaBitmap java_splash_icon_bitmap_lock(java_splash_icon_bitmap);
gfx::CreateSkBitmapFromJavaBitmap(java_splash_icon_bitmap_lock);
splash_icon.setImmutable();
}
std::string webapk_package;
......@@ -194,7 +194,7 @@ static void JNI_WebApkUpdateManager_StoreWebApkUpdateRequestToFile(
WebApkInstaller::StoreUpdateRequestToFile(
base::FilePath(update_request_path), info, primary_icon,
java_is_primary_icon_maskable, badge_icon, webapk_package,
java_is_primary_icon_maskable, splash_icon, webapk_package,
base::NumberToString(java_webapk_version),
std::move(icon_url_to_murmur2_hash), java_is_manifest_stale,
update_reason,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment