OLD | NEW |
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 #ifndef CHROME_BROWSER_ANDROID_WEBAPK_WEBAPK_INSTALLER_H_ | 5 #ifndef CHROME_BROWSER_ANDROID_WEBAPK_WEBAPK_INSTALLER_H_ |
6 #define CHROME_BROWSER_ANDROID_WEBAPK_WEBAPK_INSTALLER_H_ | 6 #define CHROME_BROWSER_ANDROID_WEBAPK_WEBAPK_INSTALLER_H_ |
7 | 7 |
8 #include <jni.h> | 8 #include <jni.h> |
9 #include <map> | 9 #include <map> |
10 #include <memory> | 10 #include <memory> |
(...skipping 15 matching lines...) Expand all Loading... |
26 } | 26 } |
27 | 27 |
28 namespace content { | 28 namespace content { |
29 class BrowserContext; | 29 class BrowserContext; |
30 } | 30 } |
31 | 31 |
32 namespace webapk { | 32 namespace webapk { |
33 class WebApk; | 33 class WebApk; |
34 } | 34 } |
35 | 35 |
36 class WebApkIconHasher; | |
37 | |
38 // Talks to Chrome WebAPK server and Google Play to generate a WebAPK on the | 36 // Talks to Chrome WebAPK server and Google Play to generate a WebAPK on the |
39 // server, download it, and install it. The native WebApkInstaller owns the | 37 // server, download it, and install it. The native WebApkInstaller owns the |
40 // Java WebApkInstaller counterpart. | 38 // Java WebApkInstaller counterpart. |
41 class WebApkInstaller : public net::URLFetcherDelegate { | 39 class WebApkInstaller : public net::URLFetcherDelegate { |
42 public: | 40 public: |
43 using FinishCallback = WebApkInstallService::FinishCallback; | 41 using FinishCallback = WebApkInstallService::FinishCallback; |
44 | 42 |
45 ~WebApkInstaller() override; | 43 ~WebApkInstaller() override; |
46 | 44 |
47 // Creates a self-owned WebApkInstaller instance and talks to the Chrome | 45 // Creates a self-owned WebApkInstaller instance and talks to the Chrome |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 void UpdateAsync( | 151 void UpdateAsync( |
154 const std::string& webapk_package, | 152 const std::string& webapk_package, |
155 int webapk_version, | 153 int webapk_version, |
156 const std::map<std::string, std::string>& icon_url_to_murmur2_hash, | 154 const std::map<std::string, std::string>& icon_url_to_murmur2_hash, |
157 bool is_manifest_stale, | 155 bool is_manifest_stale, |
158 const FinishCallback& callback); | 156 const FinishCallback& callback); |
159 | 157 |
160 // net::URLFetcherDelegate: | 158 // net::URLFetcherDelegate: |
161 void OnURLFetchComplete(const net::URLFetcher* source) override; | 159 void OnURLFetchComplete(const net::URLFetcher* source) override; |
162 | 160 |
163 // Downloads app icon in order to compute Murmur2 hash. | |
164 void DownloadAppIconAndComputeMurmur2Hash(); | |
165 | |
166 // Called with the computed Murmur2 hash for the app icon. | 161 // Called with the computed Murmur2 hash for the app icon. |
167 void OnGotIconMurmur2Hash(const std::string& icon_murmur2_hash); | 162 void OnGotIconMurmur2Hash(const std::string& icon_murmur2_hash); |
168 | 163 |
169 // Sends request to WebAPK server to create WebAPK. During a successful | 164 // Sends request to WebAPK server to create WebAPK. During a successful |
170 // request the WebAPK server responds with the URL of the generated WebAPK. | 165 // request the WebAPK server responds with the URL of the generated WebAPK. |
171 // |webapk| is the proto to send to the WebAPK server. | 166 // |webapk| is the proto to send to the WebAPK server. |
172 void SendCreateWebApkRequest(std::unique_ptr<webapk::WebApk> webapk_proto); | 167 void SendCreateWebApkRequest(std::unique_ptr<webapk::WebApk> webapk_proto); |
173 | 168 |
174 // Sends request to WebAPK server to update a WebAPK. During a successful | 169 // Sends request to WebAPK server to update a WebAPK. During a successful |
175 // request the WebAPK server responds with the URL of the generated WebAPK. | 170 // request the WebAPK server responds with the URL of the generated WebAPK. |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
213 // |change_permission_success| is whether the WebAPK could be made world | 208 // |change_permission_success| is whether the WebAPK could be made world |
214 // readable. | 209 // readable. |
215 void OnWebApkMadeWorldReadable(const base::FilePath& file_path, | 210 void OnWebApkMadeWorldReadable(const base::FilePath& file_path, |
216 bool change_permission_success); | 211 bool change_permission_success); |
217 | 212 |
218 net::URLRequestContextGetter* request_context_getter_; | 213 net::URLRequestContextGetter* request_context_getter_; |
219 | 214 |
220 // Sends HTTP request to WebAPK server. | 215 // Sends HTTP request to WebAPK server. |
221 std::unique_ptr<net::URLFetcher> url_fetcher_; | 216 std::unique_ptr<net::URLFetcher> url_fetcher_; |
222 | 217 |
223 // Downloads app icon and computes Murmur2 hash. | |
224 std::unique_ptr<WebApkIconHasher> icon_hasher_; | |
225 | |
226 // Downloads WebAPK. | 218 // Downloads WebAPK. |
227 std::unique_ptr<FileDownloader> downloader_; | 219 std::unique_ptr<FileDownloader> downloader_; |
228 | 220 |
229 // Fails WebApkInstaller if WebAPK server takes too long to respond or if the | 221 // Fails WebApkInstaller if WebAPK server takes too long to respond or if the |
230 // download takes too long. | 222 // download takes too long. |
231 base::OneShotTimer timer_; | 223 base::OneShotTimer timer_; |
232 | 224 |
233 // Callback to call once WebApkInstaller succeeds or fails. | 225 // Callback to call once WebApkInstaller succeeds or fails. |
234 FinishCallback finish_callback_; | 226 FinishCallback finish_callback_; |
235 | 227 |
(...skipping 28 matching lines...) Expand all Loading... |
264 // Points to the Java Object. | 256 // Points to the Java Object. |
265 base::android::ScopedJavaGlobalRef<jobject> java_ref_; | 257 base::android::ScopedJavaGlobalRef<jobject> java_ref_; |
266 | 258 |
267 // Used to get |weak_ptr_|. | 259 // Used to get |weak_ptr_|. |
268 base::WeakPtrFactory<WebApkInstaller> weak_ptr_factory_; | 260 base::WeakPtrFactory<WebApkInstaller> weak_ptr_factory_; |
269 | 261 |
270 DISALLOW_COPY_AND_ASSIGN(WebApkInstaller); | 262 DISALLOW_COPY_AND_ASSIGN(WebApkInstaller); |
271 }; | 263 }; |
272 | 264 |
273 #endif // CHROME_BROWSER_ANDROID_WEBAPK_WEBAPK_INSTALLER_H_ | 265 #endif // CHROME_BROWSER_ANDROID_WEBAPK_WEBAPK_INSTALLER_H_ |
OLD | NEW |