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

Unified Diff: components/ntp_snippets/remote/remote_suggestions_scheduler.h

Issue 2774663002: [Remote suggestions] Refactor the scheduler (Closed)
Patch Set: Marc's nits #2 Created 3 years, 9 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: components/ntp_snippets/remote/remote_suggestions_scheduler.h
diff --git a/components/ntp_snippets/remote/remote_suggestions_scheduler.h b/components/ntp_snippets/remote/remote_suggestions_scheduler.h
index 40eb5fa6bf40a0cf25df1052b9054540472fbe66..6af62879fc807e107caa78a940d6e121842c8478 100644
--- a/components/ntp_snippets/remote/remote_suggestions_scheduler.h
+++ b/components/ntp_snippets/remote/remote_suggestions_scheduler.h
@@ -9,10 +9,21 @@
namespace ntp_snippets {
-// Interface for informing the scheduler.
+class RemoteSuggestionsProvider;
+struct Status;
+
+// The scheduler for background fetching of remote suggestions has two callers:
+// a) The actual provider that implements the fetching informs the scheduler
+// about relevant events and changes in its state.
+// b) External parties (such as the UI) that need to inform the scheduler about
+// their events.
class RemoteSuggestionsScheduler {
public:
- // Internal triggers to consider fetching content suggestions.
+ // Set the provider that performs background fetching. Should be only called
+ // by the factory.
+ virtual void SetProvider(RemoteSuggestionsProvider* provider) = 0;
+
+ // ***** Internal triggers to consider fetching content suggestions. *****
// Called whenever the remote suggestions provider becomes active (on startup,
// or later on).
@@ -29,7 +40,14 @@ class RemoteSuggestionsScheduler {
// because history gets cleared (and we must not show them any more).
virtual void OnHistoryCleared() = 0;
- // External triggers to consider fetching content suggestions.
+ // Returns true if quota is available for another request.
+ virtual bool AcquireQuotaForInteractiveFetch() = 0;
+
+ // Called whenever the remote suggestions provider finishes an interactive
+ // fetch (with provided |fetch_status|).
+ virtual void OnInteractiveFetchFinished(Status fetch_status) = 0;
+
+ // ***** External triggers to consider fetching content suggestions. *****
// Called whenever chrome is started warm or the user switches to Chrome.
virtual void OnBrowserForegrounded() = 0;

Powered by Google App Engine
This is Rietveld 408576698