Use 'tile' term in MostVisitedSites.
Break out NTPTile and NTPTileSource to their own header.
Updating desktop and iOS to use ntp_tiles in one go is not going to
happen quickly. As an intermediate goal, I figured I would get them both
using NTPTile in their internals, which will make it easier to update
NewTabPage.MostVisited from MostVisitedSites on all platforms. This CL
is groundwork for that.
BUG=514752, 631990
Review-Url: https://codereview.chromium.org/2202163003
Cr-Commit-Position: refs/heads/master@{#409734}
diff --git a/components/ntp_tiles/ntp_tile.h b/components/ntp_tiles/ntp_tile.h
new file mode 100644
index 0000000..e82cd4db
--- /dev/null
+++ b/components/ntp_tiles/ntp_tile.h
@@ -0,0 +1,54 @@
+// 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_NTP_TILE_H_
+#define COMPONENTS_NTP_TILES_NTP_TILE_H_
+
+#include <vector>
+
+#include "base/files/file_path.h"
+#include "base/macros.h"
+#include "base/strings/string16.h"
+#include "url/gurl.h"
+
+namespace ntp_tiles {
+
+// The source of an NTP tile.
+// A Java counterpart will be generated for this enum.
+// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.ntp
+enum class NTPTileSource {
+ // Tile comes from the personal top sites list, based on local history.
+ TOP_SITES,
+ // Tile comes from the suggestions service, based on synced history.
+ SUGGESTIONS_SERVICE,
+ // Tile is regionally popular.
+ POPULAR,
+ // Tile is on an custodian-managed whitelist.
+ WHITELIST
+};
+
+// A suggested site shown on the New Tab Page.
+struct NTPTile {
+ base::string16 title;
+ GURL url;
+ NTPTileSource source;
+
+ // Only valid for source == WHITELIST (empty otherwise).
+ base::FilePath whitelist_icon_path;
+
+ NTPTile();
+ ~NTPTile();
+
+ NTPTile(NTPTile&&);
+ NTPTile& operator=(NTPTile&&);
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NTPTile);
+};
+
+using NTPTilesVector = std::vector<NTPTile>;
+
+} // namespace ntp_tiles
+
+#endif // COMPONENTS_NTP_TILES_NTP_TILE_H_