Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5790)

Unified Diff: chrome/browser/resources/ntp4/new_tab.js

Issue 7685049: ntp4: app install improvements (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: restore code Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/ntp4/new_tab.js
diff --git a/chrome/browser/resources/ntp4/new_tab.js b/chrome/browser/resources/ntp4/new_tab.js
index 09f2438b87d06fac99c807a739ff6de3151889ba..b97c925254283190518c3858618ffd95a732307a 100644
--- a/chrome/browser/resources/ntp4/new_tab.js
+++ b/chrome/browser/resources/ntp4/new_tab.js
@@ -317,14 +317,14 @@ cr.define('ntp4', function() {
ntp4.AppsPage.setPromo(data.showPromo ? data : null);
- // Tell the slider about the pages
+ // Tell the slider about the pages.
updateSliderCards();
if (highlightApp)
- appAdded(highlightApp);
+ appAdded(highlightApp, true);
- // Mark the current page
- dots[cardSlider.currentCard].classList.add('selected');
+ // Mark the current page.
+ cardSlider.currentCardValue.navigationDot.classList.add('selected');
Rick Byers 2011/08/23 20:52:13 Looks like you're not using the 'dots' list anymor
Evan Stade 2011/08/25 03:08:56 Done.
logEvent('apps.layout: ' + (Date.now() - startTime));
}
@@ -333,10 +333,27 @@ cr.define('ntp4', function() {
* @param {Object} app A data structure full of relevant information for the
* app.
*/
- function appAdded(app) {
+ function appAdded(app, opt_highlight) {
+ // If the page is already open when a new app is installed, the hash will
+ // be set once again.
+ var hash = location.hash;
+ if (hash && hash.indexOf('#app-id=') == 0 && app.id == hash.split('=')[1]) {
Rick Byers 2011/08/23 20:52:13 the logic to parse the hash is duplicated in initi
Evan Stade 2011/08/25 03:08:56 Done.
+ window.history.replaceState({}, '', '/');
+ opt_highlight = true;
+ }
+
var pageIndex = app.page_index || 0;
- var page = appsPages[pageIndex];
- cardSlider.selectCardByValue(page);
+ var page;
+ if (pageIndex < appsPages.length) {
+ page = appsPages[pageIndex];
+ } else {
+ page = new ntp4.AppsPage();
Rick Byers 2011/08/23 20:52:13 is it not possible for page_index to be more than
Evan Stade 2011/08/25 03:08:56 Done.
+ appendAppsPage(page, '');
+ updateSliderCards();
+ }
+
+ if (opt_highlight)
+ cardSlider.selectCardByValue(page);
page.appendApp(app, true);
}
@@ -399,12 +416,14 @@ cr.define('ntp4', function() {
pageArray[i] = tilePages[i];
cardSlider.setCards(pageArray, pageNo);
- if (shownPage == templateData['most_visited_page_id'])
+ if (shownPage == templateData['most_visited_page_id']) {
cardSlider.selectCardByValue(mostVisitedPage);
- else if (shownPage == templateData['apps_page_id'])
- cardSlider.selectCardByValue(appsPages[shownPageIndex]);
- else if (shownPage == templateData['bookmarks_page_id'])
+ } else if (shownPage == templateData['apps_page_id']) {
+ cardSlider.selectCardByValue(
+ appsPages[Math.min(shownPageIndex, appsPages.length - 1)]);
+ } else if (shownPage == templateData['bookmarks_page_id']) {
cardSlider.selectCardByValue(bookmarksPage);
+ }
}
/**
@@ -487,7 +506,7 @@ cr.define('ntp4', function() {
function leaveRearrangeMode(e) {
var tempPage = document.querySelector('.tile-page.temporary');
var dot = tempPage.navigationDot;
- if (!tempPage.tileCount) {
+ if (!tempPage.tileCount && tempPage != cardSlider.currentCardValue) {
dot.animateRemove();
tempPage.parentNode.removeChild(tempPage);
updateSliderCards();
@@ -628,8 +647,7 @@ cr.define('ntp4', function() {
var curDot = dotList.getElementsByClassName('selected')[0];
if (curDot)
curDot.classList.remove('selected');
- var newPageIndex = e.cardSlider.currentCard;
- dots[newPageIndex].classList.add('selected');
+ page.navigationDot.classList.add('selected');
updatePageSwitchers();
}

Powered by Google App Engine
This is Rietveld 408576698