Chromium Code Reviews| Index: components/ntp_tiles/webui/ntp_tiles_internals_message_handler.h |
| diff --git a/components/ntp_tiles/webui/ntp_tiles_internals_message_handler.h b/components/ntp_tiles/webui/ntp_tiles_internals_message_handler.h |
| index 03b58c40f5240dd86bc45ccdb9a5409af061be5b..3a20b26cbb31df91e8f36d92dd78006b3a1435c0 100644 |
| --- a/components/ntp_tiles/webui/ntp_tiles_internals_message_handler.h |
| +++ b/components/ntp_tiles/webui/ntp_tiles_internals_message_handler.h |
| @@ -5,18 +5,25 @@ |
| #ifndef COMPONENTS_NTP_TILES_WEBUI_NTP_TILES_INTERNALS_MESSAGE_HANDLER_H_ |
| #define COMPONENTS_NTP_TILES_WEBUI_NTP_TILES_INTERNALS_MESSAGE_HANDLER_H_ |
| +#include <map> |
| #include <memory> |
| #include <string> |
| #include "base/macros.h" |
| #include "base/memory/weak_ptr.h" |
| #include "base/optional.h" |
| +#include "base/task/cancelable_task_tracker.h" |
| +#include "components/favicon_base/favicon_types.h" |
| #include "components/ntp_tiles/most_visited_sites.h" |
| namespace base { |
| class ListValue; |
| } // namespace base |
| +namespace favicon { |
| +class FaviconService; |
| +} // namespace favicon |
| + |
| namespace ntp_tiles { |
| class MostVisitedSites; |
| @@ -29,7 +36,9 @@ class NTPTilesInternalsMessageHandlerClient; |
| // to the embedder's API. It cannot itself implement either API directly. |
| class NTPTilesInternalsMessageHandler : public MostVisitedSites::Observer { |
| public: |
| - NTPTilesInternalsMessageHandler(); |
| + // |favicon_service| must not be null and must outlive this object. |
| + explicit NTPTilesInternalsMessageHandler( |
| + favicon::FaviconService* favicon_service); |
| ~NTPTilesInternalsMessageHandler() override; |
| // Called when the WebUI page's JavaScript has loaded and it is ready to |
| @@ -37,6 +46,9 @@ class NTPTilesInternalsMessageHandler : public MostVisitedSites::Observer { |
| void RegisterMessages(NTPTilesInternalsMessageHandlerClient* client); |
| private: |
| + using FaviconResultMap = std::map<std::pair<GURL, favicon_base::IconType>, |
| + favicon_base::FaviconRawBitmapResult>; |
| + |
| // Callbacks registered in RegisterMessages(). |
| void HandleRegisterForEvents(const base::ListValue* args); |
| void HandleUpdate(const base::ListValue* args); |
| @@ -44,12 +56,22 @@ class NTPTilesInternalsMessageHandler : public MostVisitedSites::Observer { |
| void HandleViewPopularSitesJson(const base::ListValue* args); |
| void SendSourceInfo(); |
| - void SendTiles(const NTPTilesVector& tiles); |
| + void SendTiles(const NTPTilesVector& tiles, |
| + const FaviconResultMap& result_map); |
| // MostVisitedSites::Observer. |
| void OnMostVisitedURLsAvailable(const NTPTilesVector& tiles) override; |
| void OnIconMadeAvailable(const GURL& site_url) override; |
| + void OnFaviconLookupDone(const NTPTilesVector& tiles, |
| + size_t num_lookups, |
| + FaviconResultMap* result_map, |
| + const GURL& page_url, |
| + const favicon_base::FaviconRawBitmapResult& result); |
| + |
| + favicon::FaviconService* favicon_service_; |
|
sfiera
2017/06/13 08:56:01
Nit: * const
|
| + const std::map<favicon_base::IconType, std::string> icon_types_and_names_; |
| + |
| // Bridge to embedder's API. |
| NTPTilesInternalsMessageHandlerClient* client_; |
| @@ -59,6 +81,7 @@ class NTPTilesInternalsMessageHandler : public MostVisitedSites::Observer { |
| std::string suggestions_status_; |
| std::string popular_sites_json_; |
| + base::CancelableTaskTracker cancelable_task_tracker_; |
| base::WeakPtrFactory<NTPTilesInternalsMessageHandler> weak_ptr_factory_; |
| DISALLOW_COPY_AND_ASSIGN(NTPTilesInternalsMessageHandler); |