Index: components/ntp_tiles/webui/ntp_tiles_internals_message_handler_client.h |
diff --git a/components/ntp_tiles/webui/ntp_tiles_internals_message_handler_client.h b/components/ntp_tiles/webui/ntp_tiles_internals_message_handler_client.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4a917008cbf2be1c1ac18e0923ac5a30bd961fcf |
--- /dev/null |
+++ b/components/ntp_tiles/webui/ntp_tiles_internals_message_handler_client.h |
@@ -0,0 +1,71 @@ |
+// 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_NTP_TILES_INTERNALS_MESSAGE_HANDLER_CLIENT_H_ |
+#define COMPONENTS_NTP_TILES_WEBUI_NTP_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; |
+} // namespace base |
+ |
+namespace ntp_tiles { |
+ |
+class MostVisitedSites; |
+class PopularSites; |
+ |
+// Implemented by embedders to hook up NTPTilesInternalsMessageHandler. |
+class NTPTilesInternalsMessageHandlerClient { |
+ public: |
+ // 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 DoesSourceExist(NTPTileSource source) = 0; |
+ |
+ // Creates a new MostVisitedSites based on the context pf the WebUI page. |
+ 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; |
+ |
+ // Convenience function for CallJavascriptFunctionVector(). |
+ template <typename... Arg> |
+ void CallJavascriptFunction(const std::string& name, const Arg&... arg) { |
+ CallJavascriptFunctionVector(name, {&arg...}); |
+ } |
+ |
+ protected: |
+ NTPTilesInternalsMessageHandlerClient(); |
+ virtual ~NTPTilesInternalsMessageHandlerClient(); |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(NTPTilesInternalsMessageHandlerClient); |
+}; |
+ |
+} // namespace ntp_tiles |
+ |
+#endif // COMPONENTS_NTP_TILES_WEBUI_NTP_TILES_INTERNALS_MESSAGE_HANDLER_CLIENT_H_ |