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

Unified Diff: components/doodle/doodle_service.h

Issue 2886443002: [Doodle] Move image fetching from LogoBridge to DoodleService (Closed)
Patch Set: comment Created 3 years, 7 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
« no previous file with comments | « components/doodle/DEPS ('k') | components/doodle/doodle_service.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/doodle/doodle_service.h
diff --git a/components/doodle/doodle_service.h b/components/doodle/doodle_service.h
index f80d31cbdb78f0438940188a49fb95a8e96f5673..a1d574aac88b68023e83eb88f6954bf4e867bf38 100644
--- a/components/doodle/doodle_service.h
+++ b/components/doodle/doodle_service.h
@@ -6,7 +6,9 @@
#define COMPONENTS_DOODLE_DOODLE_SERVICE_H_
#include <memory>
+#include <string>
+#include "base/callback_forward.h"
#include "base/macros.h"
#include "base/observer_list.h"
#include "base/optional.h"
@@ -21,6 +23,15 @@
class PrefRegistrySimple;
class PrefService;
+namespace gfx {
+class Image;
+}
+
+namespace image_fetcher {
+class ImageFetcher;
+struct RequestMetadata;
+}
+
namespace doodle {
class DoodleService : public KeyedService {
@@ -31,6 +42,8 @@ class DoodleService : public KeyedService {
virtual void OnDoodleConfigUpdated(const base::Optional<DoodleConfig>&) = 0;
};
+ using ImageCallback = base::Callback<void(const gfx::Image& image)>;
+
static void RegisterProfilePrefs(PrefRegistrySimple* pref_registry);
// All pointer parameters must be non-null. If |min_refresh_interval| doesn't
@@ -40,7 +53,8 @@ class DoodleService : public KeyedService {
std::unique_ptr<base::OneShotTimer> expiry_timer,
std::unique_ptr<base::Clock> clock,
std::unique_ptr<base::TickClock> tick_clock,
- base::Optional<base::TimeDelta> override_min_refresh_interval);
+ base::Optional<base::TimeDelta> override_min_refresh_interval,
+ std::unique_ptr<image_fetcher::ImageFetcher> image_fetcher);
~DoodleService() override;
// KeyedService implementation.
@@ -49,6 +63,11 @@ class DoodleService : public KeyedService {
// Returns the current (cached) config, if any.
const base::Optional<DoodleConfig>& config() const { return cached_config_; }
+ // Returns the image for the currently-cached doodle config via |callback|,
+ // which may be run synchronously or asynchronously. If the doodle is
+ // animated, this returns the static CTA image.
+ void GetImage(const ImageCallback& callback);
+
// Adds a new observer to the service. It'll only be called when the config
// changes; to get the current (cached) config, call |config()|.
void AddObserver(Observer* observer);
@@ -105,6 +124,11 @@ class DoodleService : public KeyedService {
// Callback for the expiry timer.
void DoodleExpired();
+ void ImageFetched(const ImageCallback& callback,
+ const std::string& id,
+ const gfx::Image& image,
+ const image_fetcher::RequestMetadata& metadata);
+
PrefService* pref_service_;
// The fetcher for getting fresh DoodleConfigs from the network.
@@ -118,6 +142,8 @@ class DoodleService : public KeyedService {
// refresh requests are ignored for this period.
const base::TimeDelta min_refresh_interval_;
+ std::unique_ptr<image_fetcher::ImageFetcher> image_fetcher_;
+
// The result of the last network fetch.
base::Optional<DoodleConfig> cached_config_;
« no previous file with comments | « components/doodle/DEPS ('k') | components/doodle/doodle_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698