summaryrefslogtreecommitdiffstats
path: root/chrome/browser/resources/ntp4/page_list_view.js
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/resources/ntp4/page_list_view.js')
-rw-r--r--chrome/browser/resources/ntp4/page_list_view.js64
1 files changed, 49 insertions, 15 deletions
diff --git a/chrome/browser/resources/ntp4/page_list_view.js b/chrome/browser/resources/ntp4/page_list_view.js
index 8fd5940..b95825c 100644
--- a/chrome/browser/resources/ntp4/page_list_view.js
+++ b/chrome/browser/resources/ntp4/page_list_view.js
@@ -218,7 +218,7 @@ cr.define('ntp', function() {
*
* @param {TilePage} page The page element.
* @param {string} title The title of the tile page.
- * @param {bool} titleIsEditable If true, the title can be changed.
+ * @param {boolean} titleIsEditable If true, the title can be changed.
* @param {TilePage} opt_refNode Optional reference node to insert in front
* of.
* When opt_refNode is falsey, |page| will just be appended to the end of
@@ -412,6 +412,7 @@ cr.define('ntp', function() {
this.appsLoaded_ = true;
cr.dispatchSimpleEvent(document, 'sectionready', true, true);
}
+ this.updateAppLauncherPromoHiddenState_();
},
/**
@@ -475,6 +476,25 @@ cr.define('ntp', function() {
},
/**
+ * Callback invoked by chrome whenever the app launcher promo pref changes.
+ * @param {boolean} show Identifies if we should show or hide the promo.
+ */
+ appLauncherPromoPrefChangeCallback: function(show) {
+ loadTimeData.overrideValues({showAppLauncherPromo: show});
+ this.updateAppLauncherPromoHiddenState_();
+ },
+
+ /**
+ * Updates the hidden state of the app launcher promo based on the page
+ * shown and load data content.
+ */
+ updateAppLauncherPromoHiddenState_: function() {
+ $('app-launcher-promo').hidden =
+ !loadTimeData.getBoolean('showAppLauncherPromo') ||
+ this.shownPage != loadTimeData.getInteger('apps_page_id');
+ },
+
+ /**
* Invoked whenever the pages in apps-page-list have changed so that
* the Slider knows about the new elements.
*/
@@ -483,20 +503,33 @@ cr.define('ntp', function() {
this.tilePages.length - 1));
this.cardSlider.setCards(Array.prototype.slice.call(this.tilePages),
pageNo);
- switch (this.shownPage) {
- case loadTimeData.getInteger('apps_page_id'):
- this.cardSlider.selectCardByValue(
- this.appsPages[Math.min(this.shownPageIndex,
- this.appsPages.length - 1)]);
- break;
- case loadTimeData.getInteger('most_visited_page_id'):
- if (this.mostVisitedPage)
- this.cardSlider.selectCardByValue(this.mostVisitedPage);
- break;
- case loadTimeData.getInteger('suggestions_page_id'):
- if (this.suggestionsPage)
- this.cardSlider.selectCardByValue(this.suggestionsPage);
- break;
+ // The shownPage property was potentially saved from a previous webui that
+ // didn't have the same set of pages as the current one. So we cascade
+ // from suggestions, to most visited and then to apps because we can have
+ // an page with apps only (e.g., chrome://apps) or one with only the most
+ // visited, but not one with only suggestions. And we alwayd default to
+ // most visited first when previously shown page is not availabel anymore.
+ // If most visited isn't there either, we go to apps.
+ if (this.shownPage == loadTimeData.getInteger('suggestions_page_id')) {
+ if (this.suggestionsPage)
+ this.cardSlider.selectCardByValue(this.suggestionsPage);
+ else
+ this.shownPage = loadTimeData.getInteger('most_visited_page_id');
+ }
+ if (this.shownPage == loadTimeData.getInteger('most_visited_page_id')) {
+ if (this.mostVisitedPage)
+ this.cardSlider.selectCardByValue(this.mostVisitedPage);
+ else
+ this.shownPage = loadTimeData.getInteger('apps_page_id');
+ }
+ if (this.shownPage == loadTimeData.getInteger('apps_page_id') &&
+ loadTimeData.getBoolean('showApps')) {
+ this.cardSlider.selectCardByValue(
+ this.appsPages[Math.min(this.shownPageIndex,
+ this.appsPages.length - 1)]);
+ } else if (this.mostVisitedPage) {
+ this.shownPage = loadTimeData.getInteger('most_visited_page_id');
+ this.cardSlider.selectCardByValue(this.mostVisitedPage);
}
},
@@ -651,6 +684,7 @@ cr.define('ntp', function() {
this.shownPage = shownPage;
this.shownPageIndex = shownPageIndex;
chrome.send('pageSelected', [this.shownPage, this.shownPageIndex]);
+ this.updateAppLauncherPromoHiddenState_();
},
/**