Index: chrome/browser/android/webapk/webapk_installer.h |
diff --git a/chrome/browser/android/webapk/webapk_installer.h b/chrome/browser/android/webapk/webapk_installer.h |
index 0aac26e96a522b7b08c106179e9d5f8f8a42e361..b5541744ec79c97f1bb7c882bf84c432179c800c 100644 |
--- a/chrome/browser/android/webapk/webapk_installer.h |
+++ b/chrome/browser/android/webapk/webapk_installer.h |
@@ -15,6 +15,7 @@ |
#include "base/timer/timer.h" |
#include "chrome/browser/android/shortcut_info.h" |
#include "chrome/browser/net/file_downloader.h" |
+#include "net/url_request/url_fetcher.h" |
#include "net/url_request/url_fetcher_delegate.h" |
#include "third_party/skia/include/core/SkBitmap.h" |
@@ -26,11 +27,6 @@ namespace content { |
class BrowserContext; |
} |
-namespace net { |
-class URLFetcher; |
-class URLRequestContextGetter; |
-} |
- |
namespace webapk { |
class WebApk; |
} |
@@ -39,10 +35,15 @@ class WebApk; |
// server, download it, and install it. |
class WebApkInstaller : public net::URLFetcherDelegate { |
public: |
+ // Called when either a request of creating or updating WebAPK has been sent |
+ // or the creation process of the WebAPK on the server side fails. |
+ // Parameters: |
+ // - whether the request succeeds. |
pkotwicz
2016/08/09 14:35:43
How about:
"Called when either a request for creat
Xi Han
2016/08/11 19:01:15
Done.
|
using FinishCallback = base::Callback<void(bool)>; |
WebApkInstaller(const ShortcutInfo& shortcut_info, |
const SkBitmap& shorcut_icon); |
+ |
~WebApkInstaller() override; |
// Talks to the Chrome WebAPK server to generate a WebAPK on the server and to |
@@ -56,6 +57,15 @@ class WebApkInstaller : public net::URLFetcherDelegate { |
net::URLRequestContextGetter* request_context_getter, |
const FinishCallback& callback); |
+ // Talks to the Chrome WebAPK server to update a WebAPK on the server and to |
+ // the Google Play server to download and install the generated WebAPK. Calls |
+ // |callback| after the request to download and install the WebAPK is sent to |
+ // the Google Play server. |
+ void UpdateAsync(content::BrowserContext* browser_context, |
+ const FinishCallback& callback, |
+ const std::string& webapk_package, |
+ int version); |
+ |
// Sets the timeout for the server requests. |
void SetTimeoutMs(int timeout_ms); |
@@ -70,6 +80,12 @@ class WebApkInstaller : public net::URLFetcherDelegate { |
const base::android::ScopedJavaLocalRef<jstring>& java_package_name); |
private: |
+ enum TaskType { |
+ UNDEFINED, |
+ INSTALL, |
+ UPDATE, |
+ }; |
+ |
// net::URLFetcherDelegate: |
void OnURLFetchComplete(const net::URLFetcher* source) override; |
@@ -77,10 +93,20 @@ class WebApkInstaller : public net::URLFetcherDelegate { |
void InitializeRequestContextGetterOnUIThread( |
content::BrowserContext* browser_context); |
- // Sends request to WebAPK server to create WebAPK. During a successful |
- // request the WebAPK server responds with the URL of the generated WebAPK. |
+ // Sends request to WebAPK server to create WebAPK. |
void SendCreateWebApkRequest(); |
+ // Sends request to WebAPK server to update a WebAPK. |
+ void SendUpdateWebApkRequest(); |
+ |
+ // Sends a request to WebAPK server. During a successful request the |
+ // WebAPK server responds with a URL to send to Google Play to |
+ // download and install the generated WebAPK. |
pkotwicz
2016/08/09 14:35:43
Nit: The comment is incorrect. WebApkInstaller doe
Xi Han
2016/08/11 19:01:15
Done.
|
+ void SendRequest( |
+ std::unique_ptr<webapk::WebApk> request_proto, |
+ net::URLFetcher::RequestType request_type, |
+ const GURL& server_url); |
+ |
// Called with the URL of generated WebAPK and the package name that the |
// WebAPK should be installed at. |
void OnGotWebApkDownloadUrl(const GURL& download_url, |
@@ -141,6 +167,16 @@ class WebApkInstaller : public net::URLFetcherDelegate { |
// The number of milliseconds to wait for the WebAPK download to complete. |
int download_timeout_ms_; |
+ // WebAPK package name. |
+ std::string webapk_package_; |
+ |
+ // WebAPK version code. |
+ int webapk_version_; |
+ |
+ // A flag to indicate whether the installer is for installing or updating a |
+ // WebAPK. |
pkotwicz
2016/08/09 14:35:43
How about: "Indicates whether the installer ..."
Xi Han
2016/08/11 19:01:15
Done.
|
+ TaskType task_type_; |
+ |
// Used to get |weak_ptr_| on the IO thread. |
base::WeakPtrFactory<WebApkInstaller> io_weak_ptr_factory_; |