Commit 9982cd6a authored by Cathy Li's avatar Cathy Li Committed by Commit Bot

[ExploreSites]: Load Explore Sites catalog if we find an Explore tile

Also add missing OWNER files for test directories.

Bug: 970355
Change-Id: Ibb239b3412bac5dfd1417516e19054a11d153075
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1644013
Commit-Queue: Cathy Li <chili@chromium.org>
Reviewed-by: default avatarJustin DeWitt <dewittj@chromium.org>
Reviewed-by: default avatarTheresa <twellington@chromium.org>
Cr-Commit-Position: refs/heads/master@{#667363}
parent 7ee2d050
......@@ -16,12 +16,14 @@ import android.view.View.OnCreateContextMenuListener;
import org.chromium.base.Callback;
import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.browser.explore_sites.ExploreSitesBridge;
import org.chromium.chrome.browser.favicon.IconType;
import org.chromium.chrome.browser.favicon.LargeIconBridge;
import org.chromium.chrome.browser.native_page.ContextMenuManager;
import org.chromium.chrome.browser.native_page.ContextMenuManager.ContextMenuItemId;
import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
import org.chromium.chrome.browser.offlinepages.OfflinePageItem;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.suggestions.SiteSuggestion;
import org.chromium.chrome.browser.suggestions.SuggestionsConfig;
import org.chromium.chrome.browser.suggestions.SuggestionsMetrics;
......@@ -194,6 +196,7 @@ public class TileGroup implements MostVisitedSites.Observer {
private String mPendingInsertionUrl;
private boolean mHasReceivedData;
private boolean mExploreSitesLoaded;
// TODO(dgn): Attempt to avoid cycling dependencies with TileRenderer. Is there a better way?
private final TileSetupDelegate mTileSetupDelegate = new TileSetupDelegate() {
......@@ -249,6 +252,15 @@ public class TileGroup implements MostVisitedSites.Observer {
if (suggestion.sectionType != TileSectionType.PERSONALIZED) continue;
if (suggestion.url.equals(mPendingRemovalUrl)) removalCompleted = false;
if (suggestion.url.equals(mPendingInsertionUrl)) insertionCompleted = true;
if (suggestion.source == TileSource.EXPLORE && !mExploreSitesLoaded) {
mExploreSitesLoaded = true;
ExploreSitesBridge.getEspCatalog(Profile.getLastUsedProfile(), (catalog) -> {
if (catalog == null || catalog.isEmpty()) {
ExploreSitesBridge.updateCatalogFromNetwork(
Profile.getLastUsedProfile(), true, (finished) -> {});
}
});
}
}
boolean expectedChangeCompleted = false;
......
file://chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/OWNERS
......@@ -26,9 +26,10 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.ChromeSwitches;
import org.chromium.chrome.browser.UrlConstants;
import org.chromium.chrome.browser.explore_sites.ExploreSitesBridge;
import org.chromium.chrome.browser.explore_sites.ExploreSitesCategory;
import org.chromium.chrome.browser.native_page.ContextMenuManager;
import org.chromium.chrome.browser.ntp.NewTabPage;
import org.chromium.chrome.browser.ntp.cards.NewTabPageRecyclerView;
import org.chromium.chrome.browser.snackbar.SnackbarManager;
import org.chromium.chrome.browser.suggestions.SiteSuggestion;
import org.chromium.chrome.browser.tab.Tab;
......@@ -47,6 +48,7 @@ import org.chromium.net.test.EmbeddedTestServer;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeoutException;
......@@ -129,6 +131,7 @@ public class TileGroupTest {
@Feature({"NewTabPage"})
public void testDismissExploreTileWithContextMenuFails() throws Exception {
SiteSuggestion exploreTile = recreateSuggestionsWithExploreTile();
initializeTab();
Assert.assertEquals(4, getTileGridLayout().getChildCount());
......@@ -173,10 +176,6 @@ public class TileGroupTest {
Assert.assertEquals(3, tileContainer.getChildCount());
}
private NewTabPageRecyclerView getRecyclerView() {
return mNtp.getNewTabPageView().getRecyclerView();
}
private TileGridLayout getTileGridLayout() {
ViewGroup newTabPageLayout = mNtp.getNewTabPageLayout();
Assert.assertNotNull("Unable to retrieve the NewTabPageLayout.", newTabPageLayout);
......@@ -274,6 +273,11 @@ public class TileGroupTest {
TestThreadUtils.runOnUiThreadBlocking(
() -> mMostVisitedSites.setTileSuggestions(currentSuggestions));
// Set up ExploreSitesBridge for testing.
List<ExploreSitesCategory> category = new ArrayList<>();
category.add(new ExploreSitesCategory(0, 1, "foo", 0, 0));
ExploreSitesBridge.setCatalogForTesting(category);
return exploreTile;
}
}
file://chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/OWNERS
file://chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/OWNERS
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment