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; ...@@ -16,12 +16,14 @@ import android.view.View.OnCreateContextMenuListener;
import org.chromium.base.Callback; import org.chromium.base.Callback;
import org.chromium.base.VisibleForTesting; 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.IconType;
import org.chromium.chrome.browser.favicon.LargeIconBridge; import org.chromium.chrome.browser.favicon.LargeIconBridge;
import org.chromium.chrome.browser.native_page.ContextMenuManager; import org.chromium.chrome.browser.native_page.ContextMenuManager;
import org.chromium.chrome.browser.native_page.ContextMenuManager.ContextMenuItemId; import org.chromium.chrome.browser.native_page.ContextMenuManager.ContextMenuItemId;
import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
import org.chromium.chrome.browser.offlinepages.OfflinePageItem; 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.SiteSuggestion;
import org.chromium.chrome.browser.suggestions.SuggestionsConfig; import org.chromium.chrome.browser.suggestions.SuggestionsConfig;
import org.chromium.chrome.browser.suggestions.SuggestionsMetrics; import org.chromium.chrome.browser.suggestions.SuggestionsMetrics;
...@@ -194,6 +196,7 @@ public class TileGroup implements MostVisitedSites.Observer { ...@@ -194,6 +196,7 @@ public class TileGroup implements MostVisitedSites.Observer {
private String mPendingInsertionUrl; private String mPendingInsertionUrl;
private boolean mHasReceivedData; private boolean mHasReceivedData;
private boolean mExploreSitesLoaded;
// TODO(dgn): Attempt to avoid cycling dependencies with TileRenderer. Is there a better way? // TODO(dgn): Attempt to avoid cycling dependencies with TileRenderer. Is there a better way?
private final TileSetupDelegate mTileSetupDelegate = new TileSetupDelegate() { private final TileSetupDelegate mTileSetupDelegate = new TileSetupDelegate() {
...@@ -249,6 +252,15 @@ public class TileGroup implements MostVisitedSites.Observer { ...@@ -249,6 +252,15 @@ public class TileGroup implements MostVisitedSites.Observer {
if (suggestion.sectionType != TileSectionType.PERSONALIZED) continue; if (suggestion.sectionType != TileSectionType.PERSONALIZED) continue;
if (suggestion.url.equals(mPendingRemovalUrl)) removalCompleted = false; if (suggestion.url.equals(mPendingRemovalUrl)) removalCompleted = false;
if (suggestion.url.equals(mPendingInsertionUrl)) insertionCompleted = true; 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; boolean expectedChangeCompleted = false;
......
file://chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/OWNERS
...@@ -26,9 +26,10 @@ import org.chromium.chrome.R; ...@@ -26,9 +26,10 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeActivity; import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.ChromeSwitches; import org.chromium.chrome.browser.ChromeSwitches;
import org.chromium.chrome.browser.UrlConstants; 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.native_page.ContextMenuManager;
import org.chromium.chrome.browser.ntp.NewTabPage; 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.snackbar.SnackbarManager;
import org.chromium.chrome.browser.suggestions.SiteSuggestion; import org.chromium.chrome.browser.suggestions.SiteSuggestion;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
...@@ -47,6 +48,7 @@ import org.chromium.net.test.EmbeddedTestServer; ...@@ -47,6 +48,7 @@ import org.chromium.net.test.EmbeddedTestServer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeoutException; import java.util.concurrent.TimeoutException;
...@@ -129,6 +131,7 @@ public class TileGroupTest { ...@@ -129,6 +131,7 @@ public class TileGroupTest {
@Feature({"NewTabPage"}) @Feature({"NewTabPage"})
public void testDismissExploreTileWithContextMenuFails() throws Exception { public void testDismissExploreTileWithContextMenuFails() throws Exception {
SiteSuggestion exploreTile = recreateSuggestionsWithExploreTile(); SiteSuggestion exploreTile = recreateSuggestionsWithExploreTile();
initializeTab(); initializeTab();
Assert.assertEquals(4, getTileGridLayout().getChildCount()); Assert.assertEquals(4, getTileGridLayout().getChildCount());
...@@ -173,10 +176,6 @@ public class TileGroupTest { ...@@ -173,10 +176,6 @@ public class TileGroupTest {
Assert.assertEquals(3, tileContainer.getChildCount()); Assert.assertEquals(3, tileContainer.getChildCount());
} }
private NewTabPageRecyclerView getRecyclerView() {
return mNtp.getNewTabPageView().getRecyclerView();
}
private TileGridLayout getTileGridLayout() { private TileGridLayout getTileGridLayout() {
ViewGroup newTabPageLayout = mNtp.getNewTabPageLayout(); ViewGroup newTabPageLayout = mNtp.getNewTabPageLayout();
Assert.assertNotNull("Unable to retrieve the NewTabPageLayout.", newTabPageLayout); Assert.assertNotNull("Unable to retrieve the NewTabPageLayout.", newTabPageLayout);
...@@ -274,6 +273,11 @@ public class TileGroupTest { ...@@ -274,6 +273,11 @@ public class TileGroupTest {
TestThreadUtils.runOnUiThreadBlocking( TestThreadUtils.runOnUiThreadBlocking(
() -> mMostVisitedSites.setTileSuggestions(currentSuggestions)); () -> 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; 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