Index: components/ntp_tiles/webui/site_tiles_internals_message_handler_client.h |
diff --git a/components/ntp_tiles/webui/site_tiles_internals_message_handler_client.h b/components/ntp_tiles/webui/site_tiles_internals_message_handler_client.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ed134a43f2bcb3ce5863125b836f8c350c90e766 |
--- /dev/null |
+++ b/components/ntp_tiles/webui/site_tiles_internals_message_handler_client.h |
@@ -0,0 +1,75 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef COMPONENTS_NTP_TILES_WEBUI_SITE_TILES_INTERNALS_MESSAGE_HANDLER_CLIENT_H_ |
+#define COMPONENTS_NTP_TILES_WEBUI_SITE_TILES_INTERNALS_MESSAGE_HANDLER_CLIENT_H_ |
+ |
+#include <memory> |
+#include <string> |
+#include <vector> |
+ |
+#include "base/callback_forward.h" |
+#include "base/macros.h" |
+#include "components/ntp_tiles/ntp_tile_source.h" |
+ |
+class PrefService; |
+ |
+namespace base { |
+class Value; |
+class ListValue; |
+class SequencedWorkerPool; |
+} // namespace base |
+ |
+namespace ntp_tiles { |
+ |
+class MostVisitedSites; |
+class PopularSites; |
+ |
+// Implemented by embedders to hook up SiteTilesInternalsMessageHandler. |
+class SiteTilesInternalsMessageHandlerClient { |
+ public: |
+ // Returns the blocking pool for the embedder. |
+ virtual base::SequencedWorkerPool* GetBlockingPool() = 0; |
+ |
+ // Returns the PrefService for the embedder and containing WebUI page. |
+ virtual PrefService* GetPrefs() = 0; |
+ |
+ // Returns true if the given source is enabled (even if, in practice, none of |
+ // the tiles would come from it). |
+ virtual bool IsSourceEnabled(NTPTileSource source) = 0; |
+ |
+ // Creates a new MostVisited based on the context pf the WebUI page. |
Marc Treib
2016/12/09 10:52:12
s/MostVisited/MostVisitedSites/
sfiera
2016/12/09 17:35:28
Done.
|
+ virtual std::unique_ptr<ntp_tiles::MostVisitedSites> |
+ MakeMostVisitedSites() = 0; |
+ |
+ // Creates a new PopularSites based on the context pf the WebUI page. |
+ virtual std::unique_ptr<ntp_tiles::PopularSites> MakePopularSites() = 0; |
+ |
+ // Registers a callback in Javascript. See content::WebUI and web::WebUIIOS. |
+ virtual void RegisterMessageCallback( |
+ const std::string& message, |
+ const base::Callback<void(const base::ListValue*)>& callback) = 0; |
+ |
+ // Invokes a function in Javascript. See content::WebUI and web::WebUIIOS. |
+ virtual void CallJavascriptFunctionVector( |
+ const std::string& name, |
+ const std::vector<const base::Value*>& values) = 0; |
+ |
+ // Helper function for CallJavascriptFunctionVector(). |
Marc Treib
2016/12/09 10:52:12
nit: This is really the main API, but the comment
sfiera
2016/12/09 17:35:28
Ah, I meant "helper for calling", not "helper for
Marc Treib
2016/12/12 09:42:18
Yup SG, thanks!
|
+ template <typename... Arg> |
+ void CallJavascriptFunction(const std::string& name, const Arg&... arg) { |
+ CallJavascriptFunctionVector(name, {&arg...}); |
+ } |
+ |
+ protected: |
+ SiteTilesInternalsMessageHandlerClient(); |
+ virtual ~SiteTilesInternalsMessageHandlerClient(); |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(SiteTilesInternalsMessageHandlerClient); |
+}; |
+ |
+} // namespace ntp_tiles |
+ |
+#endif // COMPONENTS_NTP_TILES_WEBUI_SITE_TILES_INTERNALS_MESSAGE_HANDLER_CLIENT_H_ |