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

Unified Diff: ios/chrome/browser/reading_list/reading_list_download_service.h

Issue 2351113003: Reading list downloader retries on recoverable error (Closed)
Patch Set: Use weak pointer Created 4 years, 3 months 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 side-by-side diff with in-line comments
Download patch
Index: ios/chrome/browser/reading_list/reading_list_download_service.h
diff --git a/ios/chrome/browser/reading_list/reading_list_download_service.h b/ios/chrome/browser/reading_list/reading_list_download_service.h
index 2c23710615c67cf10098764598db6cb6e984202b..b4803bfc890e31d4195f7644d166680e901a5d94 100644
--- a/ios/chrome/browser/reading_list/reading_list_download_service.h
+++ b/ios/chrome/browser/reading_list/reading_list_download_service.h
@@ -9,6 +9,7 @@
#include "components/keyed_service/core/keyed_service.h"
#include "ios/chrome/browser/reading_list/reading_list_model_observer.h"
#include "ios/chrome/browser/reading_list/url_downloader.h"
+#include "net/base/network_change_notifier.h"
class GURL;
class PrefService;
@@ -25,8 +26,10 @@ class DomDistillerService;
// Any calls made to DownloadAllEntries/DownloadEntry before the model is
// loaded will be ignored. When the model is loaded, DownloadAllEntries will be
// called automatically.
-class ReadingListDownloadService : public KeyedService,
- public ReadingListModelObserver {
+class ReadingListDownloadService
+ : public KeyedService,
+ public ReadingListModelObserver,
+ public net::NetworkChangeNotifier::ConnectionTypeObserver {
public:
ReadingListDownloadService(
ReadingListModel* reading_list_model,
@@ -56,6 +59,14 @@ class ReadingListDownloadService : public KeyedService,
// Tries to save offline versions of all entries in the reading list that are
// not yet saved. Must only be called after reading list model is loaded.
void DownloadAllEntries();
+ // Schedule a download of an offline version of the reading list entry,
+ // according to the delay of the entry. Must only be called after reading list
+ // model is loaded.
+ void ScheduleDownloadEntry(const ReadingListEntry& entry);
+ // Tries to save an offline version of the reading list entry corresponding to
+ // the |url| if it is not yet saved. Must only be called after reading list
+ // model is loaded.
+ void DownloadEntryFromURL(const GURL& url);
// Tries to save an offline version of the reading list entry if it is not yet
// saved. Must only be called after reading list model is loaded.
void DownloadEntry(const ReadingListEntry& entry);
@@ -71,8 +82,17 @@ class ReadingListDownloadService : public KeyedService,
// Callback for entry deletion.
void OnDeleteEnd(const GURL& url, bool success);
+ // net::NetworkChangeNotifier::ConnectionTypeObserver:
+ void OnConnectionTypeChanged(
+ net::NetworkChangeNotifier::ConnectionType type) override;
+
ReadingListModel* reading_list_model_;
std::unique_ptr<URLDownloader> url_downloader_;
+ std::vector<GURL> url_to_download_cellular_;
+ std::vector<GURL> url_to_download_wifi_;
+ bool had_connection_;
+
+ base::WeakPtrFactory<ReadingListDownloadService> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(ReadingListDownloadService);
};

Powered by Google App Engine
This is Rietveld 408576698