Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(123)

Side by Side Diff: chrome/browser/android/webapk/webapk_update_manager.cc

Issue 2528073002: Add a flag in WebAPK's proto when the Web App Manifest is no longer available. (Closed)
Patch Set: Remove best_icon_hash. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/android/webapk/webapk_update_manager.h" 5 #include "chrome/browser/android/webapk/webapk_update_manager.h"
6 6
7 #include <jni.h> 7 #include <jni.h>
8 8
9 #include "base/android/jni_array.h" 9 #include "base/android/jni_array.h"
10 #include "base/android/jni_string.h" 10 #include "base/android/jni_string.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 // static JNI method. 46 // static JNI method.
47 static void UpdateAsync( 47 static void UpdateAsync(
48 JNIEnv* env, 48 JNIEnv* env,
49 const JavaParamRef<jclass>& clazz, 49 const JavaParamRef<jclass>& clazz,
50 const JavaParamRef<jstring>& java_id, 50 const JavaParamRef<jstring>& java_id,
51 const JavaParamRef<jstring>& java_start_url, 51 const JavaParamRef<jstring>& java_start_url,
52 const JavaParamRef<jstring>& java_scope, 52 const JavaParamRef<jstring>& java_scope,
53 const JavaParamRef<jstring>& java_name, 53 const JavaParamRef<jstring>& java_name,
54 const JavaParamRef<jstring>& java_short_name, 54 const JavaParamRef<jstring>& java_short_name,
55 const JavaParamRef<jstring>& java_best_icon_url, 55 const JavaParamRef<jstring>& java_best_icon_url,
56 const JavaParamRef<jstring>& java_best_icon_murmur2_hash,
57 const JavaParamRef<jobject>& java_best_icon_bitmap, 56 const JavaParamRef<jobject>& java_best_icon_bitmap,
58 const JavaParamRef<jobjectArray>& java_icon_urls, 57 const JavaParamRef<jobjectArray>& java_icon_urls,
58 const JavaParamRef<jobjectArray>& java_icon_hashes,
59 jint java_display_mode, 59 jint java_display_mode,
60 jint java_orientation, 60 jint java_orientation,
61 jlong java_theme_color, 61 jlong java_theme_color,
62 jlong java_background_color, 62 jlong java_background_color,
63 const JavaParamRef<jstring>& java_web_manifest_url, 63 const JavaParamRef<jstring>& java_web_manifest_url,
64 const JavaParamRef<jstring>& java_webapk_package, 64 const JavaParamRef<jstring>& java_webapk_package,
65 jint java_webapk_version) { 65 jint java_webapk_version,
66 jboolean java_stale_manifest) {
66 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 67 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
67 68
68 Profile* profile = ProfileManager::GetLastUsedProfile(); 69 Profile* profile = ProfileManager::GetLastUsedProfile();
69 if (profile == nullptr) { 70 if (profile == nullptr) {
70 NOTREACHED() << "Profile not found."; 71 NOTREACHED() << "Profile not found.";
71 return; 72 return;
72 } 73 }
73 74
74 std::string id(ConvertJavaStringToUTF8(env, java_id)); 75 std::string id(ConvertJavaStringToUTF8(env, java_id));
75 GURL start_url(ConvertJavaStringToUTF8(env, java_start_url)); 76 GURL start_url(ConvertJavaStringToUTF8(env, java_start_url));
76 GURL scope(ConvertJavaStringToUTF8(env, java_scope)); 77 GURL scope(ConvertJavaStringToUTF8(env, java_scope));
77 GURL web_manifest_url(ConvertJavaStringToUTF8(env, java_web_manifest_url)); 78 GURL web_manifest_url(ConvertJavaStringToUTF8(env, java_web_manifest_url));
78 GURL best_icon_url(ConvertJavaStringToUTF8(env, java_best_icon_url)); 79 GURL best_icon_url(ConvertJavaStringToUTF8(env, java_best_icon_url));
79 ShortcutInfo info(start_url); 80 ShortcutInfo info(start_url);
80 info.scope = scope; 81 info.scope = scope;
81 info.name = ConvertJavaStringToUTF16(env, java_name); 82 info.name = ConvertJavaStringToUTF16(env, java_name);
82 info.short_name = ConvertJavaStringToUTF16(env, java_short_name); 83 info.short_name = ConvertJavaStringToUTF16(env, java_short_name);
83 info.display = static_cast<blink::WebDisplayMode>(java_display_mode); 84 info.display = static_cast<blink::WebDisplayMode>(java_display_mode);
84 info.orientation = 85 info.orientation =
85 static_cast<blink::WebScreenOrientationLockType>(java_orientation); 86 static_cast<blink::WebScreenOrientationLockType>(java_orientation);
86 info.theme_color = (long)java_theme_color; 87 info.theme_color = (long)java_theme_color;
87 info.background_color = (long)java_background_color; 88 info.background_color = (long)java_background_color;
88 info.best_icon_url = best_icon_url; 89 info.best_icon_url = best_icon_url;
89 info.manifest_url = web_manifest_url; 90 info.manifest_url = web_manifest_url;
90 91
91 base::android::JavaArrayOfByteArrayToStringVector( 92 base::android::JavaArrayOfByteArrayToStringVector(
92 env, java_icon_urls.obj(), &info.icon_urls); 93 env, java_icon_urls.obj(), &info.icon_urls);
93 94
95 std::vector<std::string> icon_hashes;
96 base::android::AppendJavaStringArrayToStringVector(
97 env, java_icon_hashes.obj(), &icon_hashes);
98
99 std::map<std::string, std::string> icon_url_hash_map;
pkotwicz 2016/12/07 20:41:30 Nit: Name this |icon_url_to_murmur2_hash_map| to m
Xi Han 2016/12/09 18:40:12 Done.
100 for (size_t i = 0; i < info.icon_urls.size(); ++i) {
101 std::string icon_hash = i < icon_hashes.size() ? icon_hashes[i] : "";
pkotwicz 2016/12/07 20:41:30 I think that it is unnecessary to handle the case
Xi Han 2016/12/09 18:40:11 Done.
102 icon_url_hash_map[info.icon_urls[i]] = icon_hash;
103 }
104
94 gfx::JavaBitmap java_bitmap_lock(java_best_icon_bitmap); 105 gfx::JavaBitmap java_bitmap_lock(java_best_icon_bitmap);
95 SkBitmap best_icon_bitmap = 106 SkBitmap best_icon_bitmap =
96 gfx::CreateSkBitmapFromJavaBitmap(java_bitmap_lock); 107 gfx::CreateSkBitmapFromJavaBitmap(java_bitmap_lock);
97 best_icon_bitmap.setImmutable(); 108 best_icon_bitmap.setImmutable();
98 109
99 std::string best_icon_murmur2_hash;
100 ConvertJavaStringToUTF8(env, java_best_icon_murmur2_hash,
101 &best_icon_murmur2_hash);
102
103 std::string webapk_package; 110 std::string webapk_package;
104 ConvertJavaStringToUTF8(env, java_webapk_package, &webapk_package); 111 ConvertJavaStringToUTF8(env, java_webapk_package, &webapk_package);
105 112
106 WebApkInstaller* installer = new WebApkInstaller(info, best_icon_bitmap); 113 WebApkInstaller* installer = new WebApkInstaller(info, best_icon_bitmap);
107 installer->UpdateAsync( 114 installer->UpdateAsync(
108 profile, 115 profile,
109 base::Bind(&WebApkUpdateManager::OnBuiltWebApk, id), 116 base::Bind(&WebApkUpdateManager::OnBuiltWebApk, id),
110 best_icon_murmur2_hash, webapk_package, java_webapk_version); 117 webapk_package, java_webapk_version, java_stale_manifest,
118 icon_url_hash_map);
111 } 119 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698